Thursday, February 10, 2005

I want to be a good programmer... How???

Yesterday, I was talking at CodeProject's Lounge, and someone asked about how to become a good programmer. It's actually a very good question, and I gave him the following answer:

Karl suggested that I made this an article. I like the idea, and probably I'll expand those items and add a few other items.

> Start with a simpler, but robust language.
> I strongly suggest you to start with C# or Java.

Really? I find these two language to be the most brain damaging languages since C/C++ :)

> Forget about C++, VB, VB.NET, Perl,

Yeah, definitely.

> Python

Python?? Come on. Python lets beginners try out their ideas faster than any other language and it's fun! What else can they ask for?

ruby is an alternative to python as well.

> etc, until you're better and can understand why

Why do you think so?

Thanks for sharing!
1 book: Read "Code Complete" and do everything in there.

I consider myself a novice programmer and I think your guide is a very good.. especially the part about going on to OOP and Design Pattern..

I answered a similar question once on CodeProj.
Don't recall all of it. But the important factor is: Tenacity.

I quote myself, "I have gotten more done through tenacity than brilliance".
More Tips for being a good programmer:
1) just because a solution is published and considered a best practice that doesn't make it a good solution. Apply logic and intuition to anything you read.

2) If you can't see yourself staying up all night programming change your major/profession

3) Once you have a preferred style defend it every chance you get. Sometimes I think I am the only one that uses Java style in C#
Hey Daniel!
I really like what you said about becomeing a good programmer.
I program since the age of 14 and I am now 30. I remember my first lines of code on an Atari ST, hardly speaking any english, using a totally unknown Basic dialect called GFA Basic.
The beautiful thing about it was that it came with an interpreter which corrected any line you entered.
Anyway, I programmed Assembler, Pascal, C, C++, Perl, some Java (didn't like it too much although the concept is basically very good, it's just so "talkative").
The thing I liked about Perl was that it is kinda cryptic (which can be hard at the beginning) but the moment you got used to it it is beautiful.
Now I programmed PHP for the last six years I would say (uuuuuu - bad style - not really Object oriented I hear them say...)
If you use classes (which only very few people do), use a good template class (smarty) and a DB-Abstraction layer (which is, write your own) you can create projects (web sites of course) in no time.
Now I will have to dive into .net and C# to re-engineer one of our php-projects by 12th of this month.
I am looking forward how this all will work out, I can only say: I am pretty impressed by the .net framework and I really kinda like C# - I'm curious where this whole journey will go.

Now, one thing to add to (your pretty brilliant little article):
You gotta develop your style, you gotta use your brains, that's for sure, but if you code with all your heart and all your passion it is even more beautiful :)
I found your site looking for toronto web site design and thought I'd just say Hi. website design bathurst
I was impressed with this proper guide line. I am VB programmer. I have to work with VB for my institution. How can I jump to C# or Java?? What kind of prerequisites are needed for C#?
As a newbie(currently working with PHP) I have to say this is an Briliant Article :)..
Thanks, But I began with C.
Now i am working on VB.Net

I can develop little now.

But I am working differant fiels as mechanical engineer.
But I need to become good programmer.
Hey,thanks i loved this article and it just boosted me. Thanks for your advice. I have learnt C,C++ and currently working on MATLAB.Well,i want to learn .NET.Can anybody please suggest me where should i start from? I am a newbie to it.
Would you please mind mailing me the answer to my question at my email: Thankyou for your help. Goodday.
Hi Daniel,

I like what you said.
I was searching for a learning path, by learning path I mean a path which starts from the base to understand each and everything. For example:
1. first of all I want to understand how a CPU (Processor) executes code.
2. Learn some assembly language.
3. learn some language which are more close to hardware like c/c++.
4. Now start with OOP and modren languages like Java,C#, python etc.

Yes above defined steps will take time. But it will give you benefit your future.

I will prefer to learn a structured programming language like C first because when some one switch from structured programmming to OOP. It will be easy and better to understand why we need OOP and why oop is better.
I was influenced by an article written in 2002 called "How To Be a Programmer: A Short, Comprehensive, and Personal Summary". A review of it is here.
Hey, I enjoyed your blog post. I'm trying to conduct a survey on what makes a good programmer and would appreciate your input. If you'd encourage your readers to take the survey to, that'd be awesome!

The survey can be found here: What Really Makes a Good Programmer Survey.

Post a Comment

<< Home

This page is powered by Blogger. Isn't yours?