I've always been interested in programing stuff but don't know much about it.
Anyone making a living from that?
If so, what do you think I should start learning?
It seams that there are a lot of different languages out there.
I'm just thinking about a possible career move. Maybe going back to school...
Any thoughts? :-)
I do programing for web. That includes PHP/MySQL, Javascript, XML etc... These are not real program languages but it's a great and creative job. They are called "scripting languages". You can make serious money if you become an expert as the web technologies are always needed. If you want to develop Windows applications that's even more money but that's more difficult to learn. You need "C" or "Java". I got addicted and really no time for guitar that much. Important thing is that you need to be up to date non-stop. If something new becomes a standard you have to learn it imediately as your current skills will last 3 more months and are not going to be needed anymore. 2 years course for these things would be a great investment but no way back
Thanks Emir, that sure sounds fun!
Let's say that I would like to start programming for the web, what should I start with?
Would it be beneficial to start learning on my own before starting school?
I second emir. Very sound advice. Start with html and css for basic web page design before moving onto more complicated stuff like php, javascript etc. I would say its useful to know html, css, dhtml. Those can be learnt simultaneously. Then learn one of php or asp. I recommend php. Then you can learn javascript. From this stage you can target your learning to more of what you want to get into.
Best of luck. Its always good to have new skills.
Thanks Emir.
I found this website, it seems to teach you what you are talking about.
Could you take a look and tell me if you think that's a good start?
http://www.w3schools.com/
I'm in programming. I'm a C++ developer though, so probably can't help with developing web content. However, I would say to look at example code, it's really useful to look at the way someone else has come and designed something. I found memorizing the languages handbook and then taking example codes and bending them to do something different is the best way to learn for me.
That is a great place to start David. It is where I started to learn from.
I hear Fortran is hot right now.
/unless you want to get involved in a world that changes almost daily, I'd stay away from programming.
//That's why I like music. The major scale will be WWHWWWH until the day I die. After that you can change it.
That's great advice.
My main motivation is sadly to make a living.
Music is and always will be part of my life, but sadly I can't seem to make ends meet...
I feel like I'm constantly working but at the end of the month I just barely make it...
I would agree then with Emir's advice, if I read it correctly, which was PHP and SQL first and foremost. There are a number of benefits to this, in no particular order:
- Logic is logic. Once you become comfortable with the application of logic, the difference between languages will be reduced mostly to syntax. Similar to a different fingering for the same piece of music, so to speak.
- PHP and SQL are available all over the place in the form of cheap (sometimes even free) web hosting, or free and open-source tools that you can download and learn/test on your on computer.
- PHP and SQL are powerful enough for many many many web-based applications. This forum looks to me like a vBulletin product which is built entirely in php and driven by a brand of SQL called mySQL.
Once you're comfortable with the concepts of programming, then you can delve into other languages and environments that allow you access to the old-school lower-level concepts which aren't quite as easy to grasp nor as necessary to learn.
All that aside, it would likely not be a very quick or efficient change in career. Are you going to be able to hold on through a potentially-slow learning curve?
Hehe!
I don't know.. I'm just a little freaked out right now I think...
Just thinking about what my next move should be.
I will probably give it a try first. Learn a little and see if I like it or not I guess...
im only highschool taught and i got an offer to make a 2500$ website so it is most of the time highly paid.(btw didnt take the job, too much responsibility, they wanted me to make a web site/program that should be used to run a shipping harbor turn from afar)
but it needs to be a pation, if you dont have that magical thing that attracts you to it it can be deadly boring.
anyways in web site design i would say that 90% of the work at least for me was the user interface or what you see on screen and the backing code which is the more mathematical part was 10%. i would recommend web site design like java.net or c#.net because it seems everything is going that way.
if you work for a computer company its boring but if you fly solo and make websites for people or stores, from what i encountered they barely know what they want and you have a lot of free hand so its more interesting IMO
I would suggest, if you're going to make it a living, to learn basic algorithmic with a more basic language like C or C++, before you start with PHP. You can do that with PHP but you will have to struggle with a web server, browser, configuration, etc...
I think that learning programming from PHP won't tell you the truth about what a variable, a pointer, how the memory is used, etc... The C language is really the root language.
About 10 years ago, I started with that kind of book : http://www.amazon.com/Sams-Teach-Yourself-One-Hour/dp/0672329417/ref=sr_1_2?ie=UTF8&s=books&qid=1243001612&sr=8-2
After you finish that book, you will know everything about a programming language, a variable, a class, an object, a loop, etc... And your mind will be open to learn and understand any other language.
Then, you can switch to PHP or Java and the web. You should probably learn more complex algorithmic, like sorting algorithms, recursion, iteration, etc... as well.
I think that way you will become a good developer. It's like playing guitar. You can learn a song and play it well but if you do not understand the scales, the notes or the chords then you are still a bad player.
I'll happy to help if you need anything. I've been a pro developer for more than 10 years now. I wish I started learning guitar at the same time I've learned coding.
Ok, I am now officially overwhelmed by all the info! :-)
Seems like basically I could start anywhere, right?
I work in software development for about three years after I graduated. I started programming in Pascal and C (on university), and later I learned C++ and Java. Most of time I worked on real time software which is written in pure C++, sometimes even C. In my opinion best approach would be to start with procedural programming languages (because of the syntax C would be best choice) and then upgrade with object oriented programming (in start C++ and later JAVA). This is slow way because in the beginning you won't be able to make almost anything. But it will help you to start thinking like a programmer and (after some time programming in C++) to start thinking object oriented way. This will much help later in software design and development. All those languages (C,C++,JAVA,C#) have very similar syntax, and it will not look like learning something completely new, more like upgrading your knowledge.
Later you can easily switch to any specific technology (Web Services, ASP .NET, PHP, script languages etc.) You have many things today already made in some libraries and you just need to use them.
Also you can learn something about relational databases basics (to know what is entity, table, relation, types of relations) and of course SQL language used for data description and manipulation. After you know this you will be able to easier learn MySQL, Oracle, MS SQL server (or any other specific DBMS you have need to know).
Of course you dont have to learn all of this before you start makeing money of it. It will come depending on what you need in particular moment.
Happy learning
While it's true that C is the root language, it also contains a lot of overhead that can be both overwhelming and (in current state of the art) less frequently used. I would compare PHP to the simple triad chords, open strings, and basic notes while comparing C to the major scale, the modes extracted from it, and the actual frequencies in kilohertz to which the notes correspond.
I'd also agree that it's easier to download and use a compiler for C, the actual lessons learned would be of less immediate value while someone is still learning. With so much emphasis on java and microsoft's C#, when is the last time you needed to refer to memory by address?
I would learn C after PHP, many of the tokens are similar and the logic will behave the same way throughout. Think of it as learning to walk before learning to fly.
David, just jump straight in! It depends what kind of programming you're wanting to do. If it's web, then start with HTML. That website you found is plenty good enough to get you started and at least being able to make something in a web browser. You can just use notepad to do it all. However, if it is windows applications you want to do then you'll need a compiler (i use Microsoft Visual Studio). I'd also recommend starting on something like Visual Basic .NET because its generally not too difficult to begin with. As already said in this thread once you grasp the idea of programming structures and things like variables, functions, arrays, loops etc then it doesn't really get too difficult when you start learning other languages. The only things that really change are the programming language syntax.
You do not need to refer to memory by address but you need to understand that, for example, a reference is not a clone, or a string is not a simple characters chain, or what is binary comparison and to know that, you will need to understand what's a pointer, what's the stack, etc... the basics.
But there is surely not only one way to learn programming.
Anyways, we scared David off... He is running back to his guitar right now.
Yeah1
That all sounds good.
I'll just jump into it and go from there...
I'll most likely ask for help soon or later! :-)
Are you advertising for lessons on Craigslist?
Maybe your ad could use some tweeking to bring in more students.
I know I've surfed the Atlanta site and some of the ads are horrible.
/I'm trying hard to keep David from getting into programming.
Oh thanks man!
That is very nice of you! :-)
I recommend learing .NET programming, preferrably in C#. C# is easy to learn and can be used for both windows and web programming.
Its for microsoft platforms but its the most modern language and runtime of today. PHP is nice but for the really high level professional stuff its not enough
The basic constructs of all languages are about the same:
1. Flow Control (loops, functions, etc.)
2. Conditional Evaluations ("if, then, else" statements, switch/case)
3. Data Storage (variables, structures, arrays, strings, etc.)
4. Logical Operations (AND, OR, NOT, etc.)
5. Math Operations (multiply, add, subtract, etc.)
6. Do Object Oriented stuff after items 1 thru 5 (see below).
Programming is really NOT overwhelming at all but I'd recommend taking a single language and working through all of the above systematically and thoroughly to gain a good grasp of programming in general. You'd be amazed of the programs you can write with just the above basics. My recommendation is to start with "C" because it's a very fundamental language and used commonly in industry. C++ is an extension of C that adds the power of "object oriented design". It can be a little difficult to grasp the associated paradigms (object classes, inheritance, poly-morphicsm, etc. ) of an object oriented language, but these concepts are very powerful and used for high level programming applications (like the ones you use on your computer every day).
I learned programming before there was really any worthwhile educational content on the internet. So these days, you have a vast array of sources for education that did not exist when I started. The first thing you'll need for getting started in C, is a compiler. Borland offers some low cost complers that are excellent. you might find something for free these days on the internet, but the benefits of a commercially available compiler are better documentation, better robustness, a typically more full featured toolset. Secondly, get a book that covers the basics. (or find something like GMC for programmers on the web).
Learning to program is indeed a lot like learning to play guitar. If you build a solid set of fundamentals, you can really go places. Once you get these in one language, it will be easy to move to other languages as needed. Programming for a career is a lot of fun, it's creative, and you make decent bucks. Like any other job, it is subject to burnout, office politics, continuous change, and career setbacks. Eventually, we all have to deal with these things for sure.
I got my degree in Electrical Engineering and really only got into programming after getting out of college. I learned Basic, Fortran, and Assembly in college, but only when I got into the field did I really have to "get good". It was then when I followed my own advice (above) and completely went through an entire textbook on Pascal (a language that my then boss/company was into). Though it was a new language to me, I had seen all the constructs above, so learning the syntax was easy and I was able to focus on the finer points of programming to build some commercial applications. Most of my career has been in software now. At this time, I am working as a Software Engineering Manager at a gaming company. I still get involved with design discussions, but for the most part I don't do programming any more.
Jim.
In my opinion if you want to start learning the web programming I would recommend that you start from HTML basics and then move to CSS (which is REAAAALLY important) after you have learned those some advanced html coding and javascript ect would probably be a good idea. My knowledge in programming includes only advanced in HTML (CSS) coding but then with the others I havent learned them perfectly as 8 finger tapping, yet (sry for my english but I'm meaning that I havent mastered 8 finger tapping YET too )
I have been living as a developer for 7 years now, and i've been working with a lot of different languages..
However, the one that i really stuck with, the one i really really like.. is C#.
C# is a powerful object oriented language, and no matter what language you choose you should definately go with one that is object oriented..
C# is like someone has already mentioned, a part of the .NET framework, which is really awesome. You can create websites, which i did for the better part of 5 years, or you can create windows applications.. You can even create a program that other languages can easily talk with.. .NET consists of what is called the "Common Runtime Language" which makes it possible to almost any language to communicate with anything made in .NET.
However, it really depends on WHAT exactly you want to do?
Me, i am a kind of all round guy.. I do a lot of HTML, CSS, XML, Javascript, C# / Java programming, Data Access, Integration,.. Sometimes i even do some old school VB.
But if you want to do webpages, HTML and CSS is a great thing to do, and this is where i lack a lot of skills.. I usually do everything that the user cannot see.. i communicate with the database and other systems.. I do all the business logic that makes everything tick..
I am also designing systems, databases and communication which is in fact a totally different area..
While it's true that PHP can do a lot of stuff, I cant help think of all the colleages i've know through the years that laugh everytime that (or any other language like that) is mentioned.. Now, i dont really know PHP, but i am definately not going to find out either..
Back when i was studying we learned basic things. Data types, if-statements, classes, objects etc. etc. and we programmed a little in Java, and even a little C++.
However, i really learned to code when i first got hired.. i couldn't code much in school, but the basic idea of coding apparently stuck with me..
I can only suggest trying out the .NET framework.. There are loads of great examples on www.asp.net.. Give both a try even, and use the one you like more.. But dont take one over the other because it seems "easier".. Usually easier things have big limitations..
Good luck
As mentioned above almost every programming language today is object oriented, meaning that problem you need to solve is modeled with classes and objects (well known example is: class is Student and object is David). Object oriented design and programming is way of thinking and it is not just about learning programming language syntax. You can learn this approach with choosing any object programming language, and if you do it right you will be able to adapt to any other language. C++ is one of the first and most complex object oriented programming languages, many things you have to do on your own but you have complete control. That is why I suggested it for learning. In real life you will probably use more C# or Java etc. because development is faster and cheaper. Most classes are already there and you won't need to make them (for example you have Windows Form class and you just use it by drawing windows form like in paint, in C you have to call many complex WINAPI functions to draw simple window ).
I suggest you to become familiar with basic concepts of programing and object programming. For begining make Hello World program that will just print Hello on screen. Then make program that will print some sentence that you entered from keyboard etc.
For C++ and principles of object oriented programming I suggest book: Thinking in C++ by Bruce Eckel. Book is free and available on internet (there is also Thinking in Java from same author).
In that book you have explanation of OOP concepts like: abstraction,encapsulation, inheritance, polymophism. Basic idea of OOP is to reuse as much code as possible.
Regards
Hehe!
I think I turned this thread in a big geek meet and greet! I love it!
I have no clue what you guys are talking about but still love it!
I know how to send an email, cheers to all geeks.
PHP is scripted. But some accelerators (APC, eAccelerator) can compile the code. Those tools give more power to PHP.
Facebook, for example, use their own pre-complied framework under PHP. Not sure how it works though.
I dreamed of the day when people use musical theory as a medium to explain web programming.
"You need to know CSS like you need to know your major scale"
Tears of joy right there.
Hi, David.
I've been working with C++ for 8 years. I am an electrical engineer, currently working towards my PhD in Mobile Communication and even though programming is not my main objective, I really had to master C++ to conduct my research which involves computer simulation of mobile communication systems.
I can remember I checked a couple of times jobs at Line 6 and they sometimes look for people who have experience with C++ and musical background is a plus. Testing vintage amps and simulating them, I think that would be a dream job for you, wouldn't it? Well, I thought myself of applying to it a couple of times
The C and then C++ path, is probably one of the hardest to get through (it would need quite a large effort to master it. I am talking about years not months), but it is probably also one of the most rewarding.
If you decide to go for that path I can suggest a book called "Essential C++", Stanley Lippman, and then "The C++ programming language" by Bjarne Stroustrup.
Thanks Gus!
I decided to start learning some html..
I know it's super basic, but it's a start!
My question is, does one need to memorize by heart all the different commands from a language or is it acceptable for a programer to refer to a "dictionary of command" for lack of better words....
m
What command you use does not really matter. There is a lot of different language references over the net (php.net, w3cschool, etc...) and you will memorize the markup and code by using them.
I think that what is really important is the way you use the language. The methodology to build clean cross-browser standard code.
Emir, you really suprised me, I didn't know you're into programming. Way to go!
David, HTML is so simple it can be learned in a week. Everything starts from there, nowadays you can't even make decent web page without knowing HTML, that is C major scale, as Emir put it. I am computer engineer by vocation, learned lots of serious languages in college, programming microprocesors and logical ciruits and gates, machine-oriented stuff, ect.
I can tell you that web programming, and maybe even application programming, is overrated, everybody is doing it, you cannot really earn money there, there are lots of excellent programmers in India who will do it for 5$/hour(liberal capitalism ), and even more....that is TOUGH job, really tough, sitting 8 hours a day and looking into code can be devastating, except you LOVE programming, but basically it is tough...
Programming hardware on the other hand is more paid, but language is very different, totally different, hexa and octa systems ect....My advice is to pick the language and technology that you love...
My friend learn Java in 6 MONTHS, and got a job as junior JAVA programmer, but he practiced 4-5 hours daily, best resource for JAVA is book "Thinking in JAVA", that is like bible of java programming
So, should I give up before starting? :-/
Do you plan to take classes David? ... or learn on your own?
Regardless, I wouldn't give up on the idea. Programming is not hard really, and it can be a lot of fun. Some of the above comments are correct/true, but I wouldn't let that discourage you.
Whatever you end up doing though, don't give up on the guitar. You really can do both in your life, and as good as you are already on guitar, you can always fall back on doing music for a living . .. Funny, when I was in school, I was so keen on playing guitar professionally, that my "fallback plan" was engineering school. ... good thing I finished school for sure.
I am a web designer though do some jQuery and PHP stuff.
Programming is all about if and else...
Don't hear what others say.. If you like doing it, you should do it. If you don't, then don't even try it out as you will regret all the years after some time and wish you had done something else.
It applies to anything!
I am not that pessimistic than the people above.
Yes, there is Indians, but you cannot just tell "they work for 5$/hour" because they don't. First, right now, they are almost as expensive as European or US programmers because they are overused. But there is still Chinese, Malaysian, Vietnamese, etc... who are cheaper. But this won't last for long.
Still, those guys are coders, not developer. They are typing code the way you want them to type the code. They cannot think the way you think and the way your customer think. So you spend a LOT of time writing specifications. That time has a price as well.
Plus, you need to check everything 10 times more than if you had done it on your own.
Plus, you cannot outsource complex algorithmic or process.
Check on monster.com, you will see that there is still a lot of companies looking for developer and they pay them very well. Check what they are asking and go for that.
But keep in mind that it can take years before you can get a full time job and $50'000 a year.
I pretty much think the same way than you, -Zion-.
Currently, I enjoy much more speaking with the client than typing code. I (We ?) become more an architect than a coder or developer. I think a lot of developers tend to move on the project management path sooner or later.
About the overrating stuff, people still think that everybody can code, develop, create internet website or applications and earn money doing that. This is wrong. And it's the reason we find so many crapy websites on the net.
You cannot spend 3 month in a school, read 2 books and then be a pro developer and earn $50'000/year. People think that because, about 10 years ago, you could do that. Forget about that now. You cannot do that anymore.
(Well, yes, you can, but this won't make you a life for a long time...)
It's the same than playing guitar. After playing for 3 month, you will be able to play a song or two. But you will need to play for years before you can play something real (earn some real money).
People still think that it's piece of cake. No, it's not. If you want to have "more value" than a foreign coder paid $5/hour, then you will have to learn and work a LOT. And companies are not looking for script kiddies. They need experienced and professional developers.
Actually, you cannot imagine, how it's hard to find professional and experienced developers. It's the reason we pay them a lot and we try really hard to keep them in the company.
(I know, I know, I am getting a little bit dramatic about this debate.)
I was amazed with this:
http://wave.google.com/
Definitely there are great stuffs that can be made with GWT.
I agree with Keilnoth about getting a job as a developer. It's really becoming harder and harder. If you only miss one month of being up to date with the new stuff, some other guy will take the job with no question. I am having real difficulties to find such position just because I don't do actionscript even though I do pretty much of all the other stuff. You mentioned $50.000. I would jump of happiness like a kangaroo if I manage to get half of that salary
Nadir, I watched wave presentation last night (1 hour and 20 min). That thing looks really promissing but looks scarry that Google wants to rule the world and keep all our personal data on their servers. This tool is one more in ther chain of applications that will push us to use it and store important data on their servers. I can just imagine when it expands into an accepted standard where you won't be able to live without it. They are mentioning meetings and editing important documents in teams. That's something I wouldn't do with their tool.
Im a Web developer, but I decided to go down the route of developing my own applications and running them myself, rather than work for a company.
This is a viable option if you you really enjoy what you do, and are confident enough.
I learnt XHTML, CSS, PHP and mySQL through the Open Univeristy as part of my Computing degree. Im also near to completeing a 9 month course on JAVA. I will study another 2 Java courses next year.
The great thing about learning JAVA is that its syntaticly similair to alot of programming (C and C++) and scripting languages such as Javascript (client side script) and PHP (server side scripting).
Nearly everything I learnt on my Java course I have applied to my Web scripting/programming. So I would suggest doing a formal qualification in whats called Object Oriented programming as it will give you the skills and confidence to use a variety of different languages and technologies
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)