Q: What advice you have for somebody who wants to get started in programming?
A: Pay attention to that need of really doing something that interests you and solving a problem and using the programming language as a tool to solve that problem.
Something that I’ve seen among new programmers is dancing around that central piece of problem solving with the tool and worrying more about the libraries you choose or the tools that you ought to be using. It’s like going out to do carpentry and spending most of your time worrying about the tool belt you pick and the kind of screwdriver. Those are kind of irrelevant. If you’re into problem solving, solve the problem and just practice doing that.
Tommy
on 06 Oct 10Well put.
I would just add a little bit of tunnel vision doesn’t hurt at first.
I’ve taken a slew of OOP courses and all of the instructors tend to start with the same admonition which is that to become a skilled programmer it takes “practice-practice-practice”.
Ignore marketing hype about this or that product and go with what you find intersting and/or engaging.
Travis
on 06 Oct 10Awesome answer. I’m a graphic designer in the action sports world. I can still remember sitting down at the computer for the first time with Adobe Illustrator in front of me and some Total Training videos (on VHS at the time) on the little TV/VCR combo next to me. All I knew at the time was that I wanted to create as realistic Dodge viper as possible. Came out this project with an education in the inner workings of Adobe Illustrator that surpassed my college professors (I was in High School at the time). Bottom line: I was so focused on getting the project/problem done that the learning tools just came naturally.
Thanks for the post guys.
Charlton
on 06 Oct 10I’d add: if you think you want to program professionally, find as low-commitment a way as you can to see what professional programming is like. Internships are good. There’s a lot of ancillary stuff around professional programming that you just don’t encounter when you’re programming to scratch your own itch, and even if you love programming, you may not care much for the ancillary stuff.
Frak
on 06 Oct 10RUN! RUN AWAY!
Deltaplan
on 07 Oct 10Awful advise if you’re not 100% sure that you’re free to use whatever tool you find suitable for the problem you have to solve…
I have encountered scores of situations in my career where project have failed miserably because of this. In one of them, a customer of mine had build a very good web app with PHP, that he had chosen because that was the technology that his developers were the most familiar with. Too bad for them : their customer rejected the software because they had a company policy that forbid any PHP on their servers.
In another project, the premise was that the software had to be developed in Java, it was a customer requirement. Too bad again for the dev team, after they had spent a few months on successfully developing a first version of the app, the customer refused to install it, because by Java they really meant Java 1.4, and the app that had been developed deeply needed at least a Java 5 JVM, and there was no way the customer would agree to upgrade their servers, ever. This project had to be rebuilt from scratch (among other things, due to libraries that requested Java 5).
And I’m not even talking about all the people who have been barred from Apple’s App Store because the technology they had chosen to build their app became suddenly forbidden one day.
The thing is, whatever you do, you make technical choices. You choose a language rather than another. You choose a library rather than another, or you choose not to use a library and to build your own solution instead. Whatever your choices are, you better know why you did them, and check if you’re even able to make them in the context that you’re in. Because in the long term, it’s not because you have chosen the best tool that your project will be successful, but if you have chosen a tool that was inappropriate then you’re pretty sure your project will fail miserably.
Cesare
on 07 Oct 10I agree, attitude is more important that tools. But if you know how to use the tools you save time.
Cormac
on 07 Oct 10@Deltaplan I had assumed that the questioner meant “what is the best way to learn to program?” in which case the advice is spot on
Also I’d add – if you’re starting at the very beginning, it’s probably best to avoid code snippets, libraries and frameworks as much as you can. Do everything from scratch and you’ll get a much better understanding of how the language you’re learning works. Later on you can use frameworks to get stuff done quicker/better, rather than to hide holes in your knowledge
Deltaplan
on 07 Oct 10@Cormac : I didn’t understand “get started” in that way, but rather “get a project started”. But I didn’t see that advise in full context…
Regarding the learning of programming, I (almost) totally agree with you Cormac, with some caveats however. First, I think that there is one single framework that every beginner should start using right away : xUnit. Because it’s both much easier to take the habit of testing from the very beginning, and at the same time once you’ve learned how to write a simple test (which isn’t much harder than Hello World these days), then you can use tests to help you understand the technology that you’re trying to learn, and it’s an excellent way to learn, especially if you’re learning by yourself.
The other caveat I’d mention it depends on the time you have to learn. If you’re already working on a project, and you have to learn a new technology, you probably won’t have enough time to avoid dealing with libraries and frameworks while you’re learning…
Jenny
on 07 Oct 10I really enjoy Signal vs. Noise, but I think I’m going to have to unsubscribe! Cursing in corporate communication is an embarrassment to me and the clients I’ve sent your way who also subscribe.
Surely such creative and innovative people can find more positive ways to provide emphasis.
Cormac
on 13 Oct 10Jenny, I wrote a little blog post on cursing and why people (like me) who curse do so (it’s not about providing emphasis)
http://stoatmusic.wordpress.com/2010/10/13/why-we-curse-swear-cuss/
This discussion is closed.