I started programming 3 2 years ago when I started the certificate in IT, I am now on my 3rd and final year of the bachelors degree in IT.

The first language I ever used was Visual Basic which we learnt in the certificate, i then moved onto c# in the first year of the degree, then java, javascript and php. I would not at all consider myself a professional programmer as I am still learning and still struggle abit with the logic side of programming.

Visual basic to me seems to basic to even bother continuing on with hence I prefer c# for software development.

What was your first language?

Way back I self taught myself some Java as a start point (but never got very good at all). My first university course used Delphi. Then I taught myself VB.Net, and then C#, while my uni courses went over Java/Objective C/Android and a little bit of prolog/haskell

My first language was QBasic. Not reccomended though.

For anyone learning programming, the first thing I usually try to tell them to keep in the back of their head is that programming is really diveded into two parts. The first part is language, which is how you communicate your ideas. The second parts is problem solving, which is how you break down problems, and build an algorithm to satisfy the problem. You'll never become a good programmer by "learning languages" alone. A good analagy might be that "just because you know fluent English, doesn't mean you can write a bestselling novel."

My personal recommendation is to learn Racket, using the MIT book HTDP, which a lot of big universities start at. The reason is that it forces you to think in a way that's good for breaking down problems.

After that, I would suggest learning common algorithms and data structures, as well as explor other languages. Someone in my class wrote his notes out for data structures and algorithms last year.

This should give a small, but fairly strong start to beginners (as well as people who think they need to have a better foundation).

The first thing I always learn and get myself familiarize with is the language construct. Regardless of what programming language it is, their language construct is the most important.

Explore with small code examples, then put them together to explore a project.

After leaving school, 30+ years ago, Dataflex

Trial and error


and most important of all


I used the same technique as everything else. Practice. The only way to get good at something is to keep doing it. I also had some excellent instructors along the way (and a few really bad ones).