How do you teach yourself programming?
Discussion
Hi guys
I have just been watching a video about developers at ableton (http://www.ableton.com/developer-jobs .. if your interested) and a few of the guys hold degrees in Chemistry or Physics and taught themselves how to code while at Uni.
I am soon going to be studying electronic engineering and while we do learn programming later in the degree I would like to give myself a head start and get into it.
How do you teach yourself? Are there any good websites/books you can recommend? What kind of things can you program while you learn?
Turbo
I have just been watching a video about developers at ableton (http://www.ableton.com/developer-jobs .. if your interested) and a few of the guys hold degrees in Chemistry or Physics and taught themselves how to code while at Uni.
I am soon going to be studying electronic engineering and while we do learn programming later in the degree I would like to give myself a head start and get into it.
How do you teach yourself? Are there any good websites/books you can recommend? What kind of things can you program while you learn?
Turbo
PM me your address, and I'll throw across some Modula-2 and Software engineering textbooks from my Uni a while back. Gives you some of the basics of why you do stuff like that.
Also, http://www.microsoft.com/visualstudio/en-gb/defaul... gives you a nice modern Development Environment, which allows you to cheat, and have nicely formatted code, and things like error checking etc etc. Keeps you concentrating on the important stuff while you learn what the words do.
As regards what you can do, your imagination is the limit (along with what language the Uni course will prescribe). iPhone apps, Windows Apps, Google Gadgets - the Cloud is a very good thing for budding dev types. Worth checking out Azure while you are surfing.
Also, http://www.microsoft.com/visualstudio/en-gb/defaul... gives you a nice modern Development Environment, which allows you to cheat, and have nicely formatted code, and things like error checking etc etc. Keeps you concentrating on the important stuff while you learn what the words do.
As regards what you can do, your imagination is the limit (along with what language the Uni course will prescribe). iPhone apps, Windows Apps, Google Gadgets - the Cloud is a very good thing for budding dev types. Worth checking out Azure while you are surfing.
Motivation, mainly. Sorry to sound fatuous.
I bought myself a mac mini last june with a determination to write in Cocoa...limited programming experience, Modula-2, C, never progressed very far, beyond knowing the various loops and conventions. I've tried before with various languages and they've fallen by the wayside. Then I got ill (prolapsed disc) and couldn't do anything for months. Picked it up again in december.
Then I bought this awesome book, best programming book I've ever read. For me, it's the best laid out book, explains everything as you need it, and gradually ups the complexity. Within a few chapters I could read code, and understand what's going on with variable assignment and pointers, then a few chapters later I could understand objects and inheritance etc.
It's hard to sit down and grind through it, but keep your eyes on the prize (i.e. programs I can run on my iphone) and your motivation will stay.
I bought myself a mac mini last june with a determination to write in Cocoa...limited programming experience, Modula-2, C, never progressed very far, beyond knowing the various loops and conventions. I've tried before with various languages and they've fallen by the wayside. Then I got ill (prolapsed disc) and couldn't do anything for months. Picked it up again in december.
Then I bought this awesome book, best programming book I've ever read. For me, it's the best laid out book, explains everything as you need it, and gradually ups the complexity. Within a few chapters I could read code, and understand what's going on with variable assignment and pointers, then a few chapters later I could understand objects and inheritance etc.
It's hard to sit down and grind through it, but keep your eyes on the prize (i.e. programs I can run on my iphone) and your motivation will stay.
Edited by Tonsko on Friday 9th April 14:42
Tonsko said:
Motivation, mainly. Sorry to sound fatuous.
I bought myself a mac mini last june with a determination to write in Cocoa...limited programming experience, Modula-2, C, never progressed very far, beyond knowing the various loops and conventions. I've tried before with various languages and they've fallen by the wayside. Then I got ill (prolapsed disc) and couldn't do anything for months. Picked it up again in december.
Then I bought this awesome book, best programming book I've ever read. For me, it's the best laid out book, explains everything as you need it, and gradually ups the complexity. Within a few chapters I could read code, and understand what's going on with variable assignment and pointers, then a few chapters later I could understand objects and inheritance etc.
It's hard to sit down and grind through it, but keep your eyes on the prize (i.e. programs I can run on my iphone) and your motivation will stay.
What book would that be...? I bought myself a mac mini last june with a determination to write in Cocoa...limited programming experience, Modula-2, C, never progressed very far, beyond knowing the various loops and conventions. I've tried before with various languages and they've fallen by the wayside. Then I got ill (prolapsed disc) and couldn't do anything for months. Picked it up again in december.
Then I bought this awesome book, best programming book I've ever read. For me, it's the best laid out book, explains everything as you need it, and gradually ups the complexity. Within a few chapters I could read code, and understand what's going on with variable assignment and pointers, then a few chapters later I could understand objects and inheritance etc.
It's hard to sit down and grind through it, but keep your eyes on the prize (i.e. programs I can run on my iphone) and your motivation will stay.
Edited by Tonsko on Friday 9th April 14:42

Heh.
I found it through http://cocoadevcentral.com/, and really liked his style - straightforward explainations, clearly laid out, easy to get. I was really struggling with the Apress titles, suddenly everything became clear! Found out he had a book, so....
Cocoa and Objective-C: Up and Running
http://my.safaribooksonline.com/9780596804794
It really suited me. Might be different for you. I anticipate me finishing this book, a fairly big achievement with programming books!
I found it through http://cocoadevcentral.com/, and really liked his style - straightforward explainations, clearly laid out, easy to get. I was really struggling with the Apress titles, suddenly everything became clear! Found out he had a book, so....

Cocoa and Objective-C: Up and Running
http://my.safaribooksonline.com/9780596804794
It really suited me. Might be different for you. I anticipate me finishing this book, a fairly big achievement with programming books!
Edited by Tonsko on Friday 9th April 15:15
Having a crappy computer that wasn't good enough to play games when I was a teen. Played around with Qbasic until I managed to somehow write a program which buggered the computer up.
Reinstalled and stuck Perl on there - followed the free chapters on www.cgi101.com and then started putting together little sites for myself. One got big and I started getting little jobs which gave me pocket money while at school. Slowly learnt more built up a decent portfolio and clients. I got into it by accident though and now just think about the big ideas and have guys in Sri Lanka who worry about the details.
While it's my baby and incredibly powerful, Perl is a slowly dying language. Mainly because PHP has a more helpful and less arsey group of developers so it's taken over. Most 'off the shelf' web apps are built in PHP too so there's less need to reinvent the wheel.
Depends on what you want to actually be working on in the long run though, other languages are more suited to desktop programs.
So yeah, I found that a good bite sized online guide with real world examples helps a lot. I found having a print out useful too. And remember that whatever question you have google usually has the answer already!
Reinstalled and stuck Perl on there - followed the free chapters on www.cgi101.com and then started putting together little sites for myself. One got big and I started getting little jobs which gave me pocket money while at school. Slowly learnt more built up a decent portfolio and clients. I got into it by accident though and now just think about the big ideas and have guys in Sri Lanka who worry about the details.
While it's my baby and incredibly powerful, Perl is a slowly dying language. Mainly because PHP has a more helpful and less arsey group of developers so it's taken over. Most 'off the shelf' web apps are built in PHP too so there's less need to reinvent the wheel.
Depends on what you want to actually be working on in the long run though, other languages are more suited to desktop programs.
So yeah, I found that a good bite sized online guide with real world examples helps a lot. I found having a print out useful too. And remember that whatever question you have google usually has the answer already!
Edited by rpguk on Friday 9th April 15:37
Tonsko said:
Heh.
I found it through http://cocoadevcentral.com/, and really liked his style - straightforward explainations, clearly laid out, easy to get. I was really struggling with the Apress titles, suddenly everything became clear! Found out he had a book, so....
Cocoa and Objective-C: Up and Running
http://my.safaribooksonline.com/9780596804794
It really suited me. Might be different for you. I anticipate me finishing this book, a fairly big achievement with programming books!
Thanks - always fancied a nosey at Cocoa.I found it through http://cocoadevcentral.com/, and really liked his style - straightforward explainations, clearly laid out, easy to get. I was really struggling with the Apress titles, suddenly everything became clear! Found out he had a book, so....

Cocoa and Objective-C: Up and Running
http://my.safaribooksonline.com/9780596804794
It really suited me. Might be different for you. I anticipate me finishing this book, a fairly big achievement with programming books!
Edited by Tonsko on Friday 9th April 15:15
turbotongue said:
Hi guys
I have just been watching a video about developers at ableton (http://www.ableton.com/developer-jobs .. if your interested) and a few of the guys hold degrees in Chemistry or Physics and taught themselves how to code while at Uni.
I am soon going to be studying electronic engineering and while we do learn programming later in the degree I would like to give myself a head start and get into it.
How do you teach yourself? Are there any good websites/books you can recommend? What kind of things can you program while you learn?
Turbo
What programming you wanting?I have just been watching a video about developers at ableton (http://www.ableton.com/developer-jobs .. if your interested) and a few of the guys hold degrees in Chemistry or Physics and taught themselves how to code while at Uni.
I am soon going to be studying electronic engineering and while we do learn programming later in the degree I would like to give myself a head start and get into it.
How do you teach yourself? Are there any good websites/books you can recommend? What kind of things can you program while you learn?
Turbo
Database
JAVA
WEB
.Net
.ASP
Blah, blah, blah....
Its like learning a new language you must pick one first instead of stating I want to learn a new language.
What will you use it for?
What is the coding you will learn later, etc?
RizzoTheRat said:
Best way is toy come up with a project you want to do, so you're not learning to program for the hell of it but you're trying to write a program to achieve something.
Yep! I couldn't just read a book cover to cover. I'd rather have a task to achieve, then break it down and figure out what mini-tasks I need to be able to code up in order to get the program I really want. That said, maybe I can't program at all - I simply butcher sample code written by professionals. I mean, if you ask me if I can program in MQL (MetaQuotes Language - a bit like VB or Javascript), I'd say no but if I needed to get something done, I'd steal bits of code from samples online and nail them together to get what needs doing.Dupont666 said:
What programming you wanting?
Database
JAVA
WEB
.Net
.ASP
Blah, blah, blah....
Its like learning a new language you must pick one first instead of stating I want to learn a new language.
What will you use it for?
What is the coding you will learn later, etc?
Exactly .. Database
JAVA
WEB
.Net
.ASP
Blah, blah, blah....
Its like learning a new language you must pick one first instead of stating I want to learn a new language.
What will you use it for?
What is the coding you will learn later, etc?
I'm a developer, and I use different languages/tools depending on what I'm doing.
Writing an accounts package is different to writing a website.
Visual development tools are the easiest way to begin really. I taught myself Visual Basic and Delphi years ago before moving onto more structured languages like C++ and Java.
The reason I became more adept at VB/Delphi was purely that it was logical - if you wanted a button to pop up a message box, you double clicked the button you'd just placed on the pre-generated form, added the message box code and away you go. With C++ (back then, anyway) it was a proper chew on - making Windows applications needed loads of code and API links before you could begin to think about button placement etc.
It's a lot easier now with Visual C# and the .net languages, so with a rudimentary knowledge of semantics, you should be able to code up basic applications pretty quickly.
The reason I became more adept at VB/Delphi was purely that it was logical - if you wanted a button to pop up a message box, you double clicked the button you'd just placed on the pre-generated form, added the message box code and away you go. With C++ (back then, anyway) it was a proper chew on - making Windows applications needed loads of code and API links before you could begin to think about button placement etc.
It's a lot easier now with Visual C# and the .net languages, so with a rudimentary knowledge of semantics, you should be able to code up basic applications pretty quickly.
Frederick said:
Visual development tools are the easiest way to begin really. I taught myself Visual Basic and Delphi years ago before moving onto more structured languages like C++ and Java.
The reason I became more adept at VB/Delphi was purely that it was logical - if you wanted a button to pop up a message box, you double clicked the button you'd just placed on the pre-generated form, added the message box code and away you go. With C++ (back then, anyway) it was a proper chew on - making Windows applications needed loads of code and API links before you could begin to think about button placement etc.
It's a lot easier now with Visual C# and the .net languages, so with a rudimentary knowledge of semantics, you should be able to code up basic applications pretty quickly.
For the front end GUI stuff, Java does it well.The reason I became more adept at VB/Delphi was purely that it was logical - if you wanted a button to pop up a message box, you double clicked the button you'd just placed on the pre-generated form, added the message box code and away you go. With C++ (back then, anyway) it was a proper chew on - making Windows applications needed loads of code and API links before you could begin to think about button placement etc.
It's a lot easier now with Visual C# and the .net languages, so with a rudimentary knowledge of semantics, you should be able to code up basic applications pretty quickly.
For everything else between the front end and the database back end,
I use C++.
Doing a GUI in C++ is non-trivial, and TBH
a bit pointless when Java does it so well. Horses for courses.
The trouble with VB and VC++ is that they are proprietary
to the closed world that is Microsoft.
Java is a fine modern language to learn and it works
well everywhere, not just on one vendor's boxes.
C++ is pretty much Java's older, more complex,
uglier and more powerful brother.
As the OP is going to be studying Electronic Engineering rather than Software Engineering, Database Systems etc etc, I imagine it will just be the core language rather than huge amounts of Windows interfacing, SQL etc. Try and find out what language they will be using, it will probably be C or C++, with a possibility of Pascal or Assembler. Ideally, find out what development environment they will be using, half the battle when learning how to program can be just working out how to use Visual Studio or whatever.
Just to add to this actually, I have recently started dusting down what I knew of Java to start programming for the Android mobile phone OS - Google link through to a Java IDE called "Eclipse" which works perfectly, it's free and it will give you a great grounding point to begin programming in object-oriented languages. There are plenty of Hello World applications and tutorials online so jump in and give it a go 

Thanks for all the replies.
I will be learning C and Java so am looking to learn one of those really. Sorry for not being specific. I have no programming experience and really don't know where to start. I think buying a book would be a bit dry. I agree that it would be good to think of something I want to build and focus on that but I really don't know. I suppose it would be cool to develop an iPhone app.. I got as far as downloading the SDK a few months ago... can anybody recommend good ways to approach doing this? Will this develop skills in java/c or is it all a different language?
I will be learning C and Java so am looking to learn one of those really. Sorry for not being specific. I have no programming experience and really don't know where to start. I think buying a book would be a bit dry. I agree that it would be good to think of something I want to build and focus on that but I really don't know. I suppose it would be cool to develop an iPhone app.. I got as far as downloading the SDK a few months ago... can anybody recommend good ways to approach doing this? Will this develop skills in java/c or is it all a different language?
If I had one tip from the last couple of decades, it would be learn to code, not to code Jave, or C or Modula-2. There'll be something cooler, faster and better just around the corner, but good solid knowledge of putting together the right underlying logic, in clean understandable code, with good comments, that the next bloke can see why what and how you did something is worth more than "clever".
You're training to be an engineer - find out what elegant means
ETA Logged in on the missus' PC - its marcus
You're training to be an engineer - find out what elegant means

ETA Logged in on the missus' PC - its marcus

Edited by powerrangersgirl on Friday 9th April 21:11
My suggestions -
Get yourself an emulator for a 1980s computer (or a 1980s computer off ebay). You should be able to get some free books online to help you. Use that to learn programming. You can write a program that does something in a few lines of BASIC, and it's less forgiving than a modern language so you'll really understand what each line of code actually does, but it's fun and rewarding.
When you understand this, try and learn software engineering concepts such as pointers and how to build linked lists in a slightly more modern language like C++. (First year university stuff - boring but necessary).
Finally (when you understand the underlying concepts), move on to a modern language (C#/Java with the latest development environment). It will be a lot easier if you understand the fundamentals.
Get yourself an emulator for a 1980s computer (or a 1980s computer off ebay). You should be able to get some free books online to help you. Use that to learn programming. You can write a program that does something in a few lines of BASIC, and it's less forgiving than a modern language so you'll really understand what each line of code actually does, but it's fun and rewarding.
When you understand this, try and learn software engineering concepts such as pointers and how to build linked lists in a slightly more modern language like C++. (First year university stuff - boring but necessary).
Finally (when you understand the underlying concepts), move on to a modern language (C#/Java with the latest development environment). It will be a lot easier if you understand the fundamentals.
Tonsko said:
Motivation, mainly. Sorry to sound fatuous....
I agree with that one. I started off using a ZX81 in err 1981 and then sat for hours after work with an Apple ][ learning Apple Pascal (UCSD) as that was what the company was using at the time (Early macs were programmed in Pascal using the Lisa as a development tool)Then moved on to database and 8051 assembly stuff.
You need a goal.
Gassing Station | Computers, Gadgets & Stuff | Top of Page | What's New | My Stuff


