E-Mail:
Get my new Windows 7 eBook (PDF) for $7 with 70+ Tips. Download Now!

What Advice do you Give to Young Programmers?

Add to iTunes | Add to YouTube | Add to Google | RSS Feed

Programming is an excellent field to go into, and good Programmers are a hot commodity. That reminds me… if anyone out there is above excellent at working with Drupal, shoot me an email to chris@pirillo.com. Thanks to Grant for sending in this list of tips for young people looking to learn Programming.

  • Read. If you do not like spending a lot of time reading… you should not program. When you are learning a computer language, you must be willing to spend hours reading books, websites, and magazine articles.
  • Take your time finding the language that is right for you. Think about what you want to accomplish when programming a computer. Remember, once you learn one computer language… it is easy to learn another.
  • ThinkWhen you start to make a program, really spend some time thinking about what you want it to do. I cannot tell you how many times I just jumped into a project, only to realize it was useless.
  • Use flow charts. Flow charting allows you to organize your code, and make it efficient.
  • Back everything up! When you start to program, there is a good chance that you might mess something up, and fry your computer. Give yourself a safety net, and back everything up. Also make sure to frequently backup your code itself! This makes it easier to undo when you make a mistake.
  • Comment your code! If you leave a project, only to come back later… you will probably have forgotten how it worked. Commenting your code will help you. With comments, you do not have to read through the whole thing. Instead, you can look at your comments and get an idea of what’s going on.
  • Don’t be afraid to ask for help. Microsoft has a great website and databases for programmers. Also check out their blog, and ask questions. There is always someone who is willing to help.
  • Get a book. Your local or school library will most likely have books on Programming. Check them out, read them over and over, and learn from them.
  • Testing! When you have a good start on your programs, let other people try them out. You could ask people to evaluate them, or you could give them out as freeware. Start a website and let people download them if you want. The feedback will be an invaluable learning tool for you.

Want to embed this video on your own site, blog, or forum? Use this code or download the video:

Need a new domain name? See why GoDaddy is the #1 domain registrar worldwide. Now with your domain registration, you'll get hosting, a free blog, complete email system, and much more! Plus, as a listener of The Chris Pirillo Show, enter code CHRIS3 and get your .COM domain name for just $6.95 a year. Get your piece of the internet at GoDaddy!

33 Comments

An Open Letter to American ExpressWhat Advice do you Give to Young Programmers?Making the Band: A Kid’s Perspective What do Bachelors Eat? Saudi Cuisine

Tech InterviewsWhat Advice do you Give to Young Programmers?Making the Band: A Kid?s Perspective What do Bachelors Eat? Saudi Cuisine Am I the Only Person not Weightlifting? How Do you Teach People about Hardware and Software? Are These Good Reasons to Embrace Technology?

lol

“hyper text markup language”

* It’s useful to learn assembler, or c, which is like a “portable assembler”, in order to understand how the computer actually works. Languages like C++ and Java hide a lot of stuff from the programmer. If you form good habits in assembler or c, though, you’ll be above-average in other languages as well.

* Similarly, you should avoid interpreted languages such as Perl, Basic, PHP, JavaScript, Xbase, etc when you’re first programming, because they encourage bad habits. Actually, learning Pascal early on isn’t a bad idea. There’s not much work for Pascal programmers, but the language forces you to adopt good programming habits.

* Flow charts don’t help nearly as much as pseudocoding for the back end, and prototyping for the front end.

* Plan on writing everything twice. You don’t really understand how to write a program correctly until you’ve actually written the program. The second time through, you’ll have the data structures right, and you’ll know the algorithms. All that’s left then is the user interface, and if the back end is coded properly, you can change the user interface fairly easily.

The only way to get the UI correct is to test, test, and test, with typical users instead of computer programmers trying to figure out how to use the program. This is critically important, though, because the user interface makes or breaks the software.

* Go with the flow. When you find that you’re struggling to get the code to work right, you’re probably bebugging, not debugging, the code. When you find yourself coding easily and quickly, you probably are producing code with few bugs in it. If you find yourself “in the flow”, don’t stop working, even if you end up working 36 or 48 hours straight. Those periods don’t come often, and you have to take full advantage. When you’re done, go to bed and crash for 24 or 48 hours straight to recover, because you’ll need to.

* Commenting code doesn’t happen. What you need to do is to take your pseudocode and comment it ALL out, then insert the actual working code between the pseudocode. Use self-explanatory variable names.

* When you write a simple function, write a “main” function that tests the simple function. Keep those two functions in the same file, but comment out the “main” function with #ifdef TESTING and #endif. That way, if you need to change the simple function, you have the test function already written.

* Use a pretty-printer program after each edit to keep your code properly formatted. It makes it easier to find syntax errors. Lint your code; it’ll find a lot of errors, too.

* Scoping is an important friend. Use it to keep functions from stepping on each others’ feet.

* Make friends with a nit-picker. Show him your code. You’ll hate what he has to say, but it’ll make you a better programmer.

this guy doesn’t know what he’s talking about

I’m guessing hat’s you, huh? ;)

there are 1 types of people in the world those who know binary and those who don’t

You obviously don’t know binary. It would be 10 types of people in the world, those who know it and those who don’t.

no, hes right. 1 = 2.

I’d say bravo for your tips! I’m a french student programmer who needed to read this ;)

So… Thanks!

Just 1 coment…
What it the probability that a Noob programmer needs to do special backup because of the programming. The first programs a person does noes not handle files. And even if there would be files written, why would he(/she) break the whole os.

Or maybe 2 comments.

My self I started to learn programming language called Pascal (commandline) at the age of 14. I find that it was a verry good choice because of its simplicity. Not because the programming language is limited but that it “tags” are more logic. I guess I read about 600pages, and then I was readyy to tackle the world of windows… So Then I started with Visual Basic. Which is the simplest way of creating Win apps…

I believe that this is the way to go.

Some start with Java. and I need to say that it can be some what more confusing. And C++ windwos programming, well that will take a lot of time, since the code to just create a window requires 4-5 pages of code. Which is already provided… but confusiong.

Pick the language that’s right for you?? Terrible advice… pick the language which is right for what you NEED TO DO.

Read the Bentley Programming Pearls books, twice. ;-)

kewl, i do some computer programming at my school for robotics (team 1208 FTW!!!), and i will say, all of this holds true, but you might want to add info for math classes in school, those are a MUST….

no, there are only two types of people. One type is me and the rest is the other… sad but true.

No. There are actually 3 types of people. Those who can count and those who can’t.

I think what he’s getting at is, what is right for you to learn as a first language. I do agree picking the language that suits the job, and in a sense you could say you’re picking the right language for the job (which is learning). You don’t want to start off a new programmer with C/C++. Python or C# are much better languages to learn first, as they teache you a lot about OOP and various other important programming idioms :)

Filmed on my birthday. Yaaaaay!

live FTW but I don’t have voice.

So, my theory still counts… me (who can count) and you and all others who can’t. :P

Advice to young programmers: think about a different job. Do some research into China and India if you don’t know why (unless you’re fine with working $9 an hour by our current standards in a decade or two).

powerful discussion which language, they all have massive amounts of power but limitations everywhere but one and that is the C language. would you program an operating system in java probably not so you would choose C for an OS i would, linux does, Microsoft use C as well but for a place i went to once they had a plc automated control system and the user interface was built in visual basic lol so which is better choose what you wanna do i think that is what he means java and kernel urm prob not

it would be useless of you to learn Microsoft visual java if you want to program a linux kernel waste time learning embedded C if your gonna program web pages so if you choose building a kernel you can choose the language you want to learn and stick to it how ever hard it is just keep going you will learn it think that is what is meant by what you need to do

I create good software without following 7 of those. I hate reading… I learn by instinct ;). The only thing I do is Backup because I suffered from that :-/ GO SUBVERSION! Did you ever realize, but I think the people who can program well dont have a gud taste of looks. Atleast me, people love the features my program has, but I always have to hire someone to get the design right.

Oh and, I love ustream. I use it all the time to teach people programming. I personally want to develop for it.

It was already mentioned, but descriptive variable names makes a ton of difference, and requries much less commenting, as in:
Volume = Width * Length * Height (obvious what is going on), but
a = b * c * d (not obvious, and will need commenting).

And one more thing, learn programming fundamentals first. (I don’t have any suggestions as to where tho). Learn these concepts (in a general way, not language specific): variables, loops, conditions, functions, scope, etc, then they can be applied to any programming language. I consider myself a computer programmer, not a ‘c programmer’ because you can learn any language (overnight in most cases) when you fully understand the fundamentals. Happy coding.

I do it all. Best way is to teach yourself.

I learn all by myself…

1) Darkbasic
2) Darkbasic Professional
3) C++ Goes over to C#
4) C#
5) Trying to learn C++

Solve a lot of programming puzzles/problems etc… when i was starting on learning programming i’m literally “hungry” to solve all the problems i can find, today i ususally go to Topocoder.com to test my skills. Also, another tip is to master the basics, you know, Loops, Expressions, Functions, etc… when you master it, all other programming languages will be a piece of cake to learn.

Kingsley Tagbo

June 4th, 2009
at 12:12pm

Build your software design and architecture skills and not just your coding skills

Don’t neglect mastering database design and development or learning sql .. .a lot of programmers think that it is optional

Code for real users with real problems … do not keep a distance from your users. At the end of the day you will find that you write better software when you take the time to know your users

What Do You Think?