Want to be a Programmer / Developer

wickedstangs

Well-known member
Alright I am about to retire / transition from the military and deciding on a new career path. I have decided to explore becoming a programmer/developer.

Do you have any recommended Books or Online classes?

What languages should I focus on?

What software do you use to help with coding?
ConText
Notepad ++
EditPad

What add ons to your existing OS do you use?
Firebug
Pro's or Con's
 
So you want to freelance? I'd suggest you to learn a language first before offering your services freelance. With the Asian market competing with you, you'll have to either do extremely cheap labour, or be extremely good at what you do.

Like others stated, you'll also have to figure out what you actually want to do. If you want to write web applications, look at php, ASP.NET, PERL, JavaScript, jQuery, CSS. If you want to build websites, you could have a go at WordPress, Joomla, Drupal, XenForo, etc. If you want to build full-blown enterprise applications, check out C# or Java. Games? C++.

Determine first what it is you want to do, then decide on a language (most things can be accomplished regardless of which language you pick, and that typically is a personal preference, or a hard requirement from the customer). I would also advise you to pick a particular language, and then master that, rather than trying to learn a little of everything, without ever really getting familiar with any of the languages.
 
Not sure Slavik, I'm just tired of working for the man:), I want to stay home all day and just be on the computer and drink lots of coffee /caffeine.... lol
Sorry for the unconstructive post, but I just had to say this: Contrary to popular belief, coding is hard work. Coders don't just sit around drinking coffee.. (which is the impression I get from you that you think you'll be doing that) - Look at Kier and Mike, they spend hours and hours coding long into the night, way past any 9 to 5 schedule. Be prepared to work long and hard, and yes, there is coffee, but that aint all that's done. </unconstructive post>
 
From that thread:
Any advice on the quickest and most efficient way of getting coding skills without going to college? Are good books enough? I just don't know where to start.
Looks like this one is gonna be a HQ foundation builder. Considering todays realities what route should I take after I am done with this book? Straight to PHP and Javascript?
Functional PHP, then check out OO before OO-PHP, then js and html5
 
One advice from someone with 15+ years of experience in that area.

Learn the basics. Learn how computers actually work, learn an assembly language to understand the fundamental things. It's not a requirement, but it helps immensely later on. I'm still seeing C/C++ programmers who don't understand pointers. Bad idea, it's going to produce ugly, broken and insecure software, that's a fact. Anyone who understands how a CPU works, how memory is addressed, how to write simple things in assembly language will never have problems with understanding pointers or references.

If you want to focus exclusively on web development, you may skip this, but if you want to become a good "jack of all trades" programmer, it's very much recommended.
Not sure Slavik, I'm just tired of working for the man:), I want to stay home all day and just be on the computer and drink lots of coffee /caffeine.... lol
To be honest, with that attitude, you're not going to become a good programmer. Simple as that. If you think, it's gonna be easy going, forget it. It's hard work, lots (read: years and years) of learning. Expect to READ a lot of text (instead of watching stupid video tutorials), do lots of research, feel the need to bang your head against the screen at times and much more exciting things. If this is the stuff you can have fun with, you might be the right person for the job. Otherwise, you aren't.
 
You wont learn a damn thing about programming in college... Learning Assembly Language won't make you a better programmer. Programming is about "problem solving", being your own personal detective; its NOT about understanding syntax. You can look up syntax on google, but the problem solving is what its about. It could take you several hours of hard work, just to end up having to revert all your changes because you discovered a tiny bug which negates everything your recently done.
 
You wont learn a damn thing about programming in college... Learning Assembly Language won't make you a better programmer.
It will make you understand fundamental and essential things about computers.

Little example: People tend to have difficulties in understanding the difference between passing a variable as value or as reference. It's a bit hard to explain but if you know the basics (and how programming languages work internally, how programs are executed by the CPU), these things become very easy to understand.

People don't understand, why using a signed data type can be an extremely bad idea (that's one of the reasons why we see so many security issues) but if you know how numbers are represented internally and how the CPU executes arithmetic and binary operations, it's quite easy to understand. Using the wrong data type for a variable will instantly blow up your head when you see it, because you know the dangers.
Programming is about "problem solving", being your own personal detective; its NOT about understanding syntax.
Programming is a lot more than solving problems. Before you can solve a problem, you must first understand it and with every bit of basic knowledge, you'll be better at it. You cannot understand a problem when you don't know why it can happen.
You can look up syntax on google, but the problem solving is what its about. It could take you several hours of hard work, just to end up having to revert all your changes because you discovered a tiny bug which negates everything your recently done.
If that happens, your initial approach was wrong and you should find out why.
 
Sorry for the unconstructive post, but I just had to say this: Contrary to popular belief, coding is hard work. Coders don't just sit around drinking coffee.. (which is the impression I get from you that you think you'll be doing that) - Look at Kier and Mike, they spend hours and hours coding long into the night, way past any 9 to 5 schedule. Be prepared to work long and hard, and yes, there is coffee, but that aint all that's done. </unconstructive post>
One advice from someone with 15+ years of experience in that area.

Learn the basics. Learn how computers actually work, learn an assembly language to understand the fundamental things. It's not a requirement, but it helps immensely later on. I'm still seeing C/C++ programmers who don't understand pointers. Bad idea, it's going to produce ugly, broken and insecure software, that's a fact. Anyone who understands how a CPU works, how memory is addressed, how to write simple things in assembly language will never have problems with understanding pointers or references.

If you want to focus exclusively on web development, you may skip this, but if you want to become a good "jack of all trades" programmer, it's very much recommended.

To be honest, with that attitude, you're not going to become a good programmer. Simple as that. If you think, it's gonna be easy going, forget it. It's hard work, lots (read: years and years) of learning. Expect to READ a lot of text (instead of watching stupid video tutorials), do lots of research, feel the need to bang your head against the screen at times and much more exciting things. If this is the stuff you can have fun with, you might be the right person for the job. Otherwise, you aren't.


Ok, you all didn't pick up on my sarcasm very well:) I am retiring from the military. I have 20years as an Electronic Technician, and I know everything about fixing computer to micro miniature repair. All I do all day long is fix them; I want to start programing. I have some training under my belt from UNIX to Novell and working with Servers and so on. Really not sure if I like to stay in that field. I have thought about Web Design which I enjoy but, like to get to the nitty gritty of coding.

I really appreciate all the feedback I am getting. It is really helping me decide which direction I should go.
 
I generally disagree. Knowing how doesn't make you a better programmer; it makes your more knowledgeable, but it doesn't make you a better problem solver. You could spend a week learning the difference of how the computer reacts to a pass by variable, or a pass by reference, and in the end, you could just end up confused. But if someone just came straight out and told you... "All you really need to know... if you pass something by variable, you only get it's value; but if you pass it by reference, you get the variable itself, so if you change the value, it changes the value in the parent as well.". Done, 5 minutes is all it takes to understand. Sure, technically its more complicated than that, but the complications don't make you a better programmer.

You could spend a month explaining why signed integers are bad... but if you just tell someone "use unsigned integers only, because signed integers can lead to buffer overruns and are a major security risk"... then they can accept it and move on to more important matters. If they really wanted to know more, they can research it themselves. Either way, in college you wouldn't learn it anyways. I've got a college degree, and I feel that I learned nothing while I was there. 14 year olds are coming out of the woodwork with great programs, and they learned it on their own with PRACTICAL use and problem solving. Learning to program in college is all about theoretics.
 
I agree with Jaxel that degrees mean diddly squat nowadays. Heck, I ended up dropping out of college (marketing) after seeing that the "marketing managers of tomorrow", as our professors said we'd be, were becoming bank tellers and temp agency matchmakers.

But I do believe that understanding the nature of what you are working with greatly helps you shortcut in your professional life, like SilverCircle said. I understand the SQL Server databases well enough, but a whole different world opened for me when I first read the "Inside SQL Server" books, which describe in extreme detail how the engine is built. It's nice knowing how certain things work, but truly understanding WHY they work the way they do will give you a great better foundation to build on.
 
My degree course was 50% software engineering. I attended the first six months of lectures, out of three years' worth. I barely remember any of the stuff from those classes.
 
I did Computer Science in College from one of the best Engineering Colleges in our country. They taught us everything from Assembly to OS to Java and everthing in between, but I hardly remember any of it. What I remember though are the silly shell scripts I wrote in Unix to play tricks on my batchmates to make their terminals start doing strange things on them! :) (like logging them out through a timer script by killing their sessions when they were in the middle of writing a program :) )

College and Formal programming classes are not useless, but you will only learn if you start hitting your head with something. Original thinking is what makes great professionals irrespective of the profession and it only comes when you start to own up a problem and get headlong into figuring out how to produce the solution. That's what Jason is pointing to and I agree.
 
It could take you several hours of hard work, just to end up having to revert all your changes because you discovered a tiny bug which negates everything your recently done.

And if you'd paid attention in a decent class you would of learned the kind of software architecture that would of stopped you doing that ........

You wont learn a damn thing about programming in college.

I disagree with that - it's the benefit of a curriculum it's more rounded. There are so many cowboy hackers out there who think they know everything, because they don't know how much they don't know and are frighteningly dangerous.
Which is when the rest of us have to go in and clean up.

I did 2 years of college and 4 years of uni for it. I could breeze what was going on in school be it ensured I covered all the bases as well as getting the project view and understanding of things I wasn't interested in.

Then in my own time I focused on what I wanted to. There is a place for both and to discount any education for all because it doesn't fit one individual is very wrong.

Either way, in college you wouldn't learn it anyways.

I did.

Learning to program in college is all about theoretics.

Maybe in yours, though none I've ever been too.
 
I agree with Jaxel that degrees mean diddly squat nowadays.

Depends on why you are doing them. A lot of people ask me why I'm back in school "How is that going to help you earn more" "What job are you going for". I find it very sad that a large group of people only think about education in a direct one to one link with a job and ultimately money. They are missing the point big time if that's how they see it.
 
My degree course was 50% software engineering. I attended the first six months of lectures, out of three years' worth. I barely remember any of the stuff from those classes.

Indeed ......... though C&C and Starcraft skills are doing OK ........
 
This kind of conversation never ceases to amaze me. We've got one person saying unless you understand the basis of how a computer works, you'll never do it properly. Another saying college is useless, and another saying its needed. I am not as good a coder as many of you, however one thing I have studied quite a lot, and no not at college or university, is learning style. You can (and will) all disagree with each other all you want, however the plain fact is that you are all correct.

Its all about learning style. Some people need to get into coding, sit and type it in whilst understanding it as they go along (kinesthetic Learners such as Jaxel). Some will have to go to college to be shown because they need to be able to ask questions and get a responce (auditory learners such as Jerry), and others will be a mixture. Others need to understand how something works before they can grasp how to do it (Such as SilverCircle).

If you want to know the answer to your question, find out which learning style most suits you and then ask the question again. I'm sure you will get a better answer.


EDIT: To add to this, reading your original post you sound like a Visual learner as you mentions books and online courses?
 
There is a place for both [all] and to discount any education for all because it doesn't fit one individual is very wrong.

^^ What Marc said too.

My main point for formal education though is that you will (on a good course) be given a broad understanding of all topics of software. Bedroom hackers are self directed so might not cover areas which affect them - but the don't know about.
 
Top Bottom