The road to become a programmer

Associate
Joined
16 Oct 2012
Posts
3
I'm looking for a 'career' change, I don't actually have a career at the moment since I haven't been able to find a job since I graduated with a degree in Materials Engineering. One of my loves has always been computers and programming, though I have never studied it seriously.

When I was 11 I wrote a very basic graphical 'game' using notepad and HTML, where I drew each possible position of the main character on the different 'maze' level in MSPaint, using pictures of arrows as links to a new page with the character in a new position, and various other buttons would pop up 'search box', 'press button' etc. At the time I thought this was an amazing achievement of my programming skills.

I've used a little bit of FORTRAN 90 whilst I was at university, which rekindled my interest in programming. When I was a kid I mainly used C and HTML, but only very basically as my 'game' suggests.

I want to learn a new programming language, I'm not entirely sure where I want to go with it, but the number one contender at the moment is android apps.

I'm looking at learning Java, but I've read that it's a difficult place to begin with; so I've also looked at learning Visual Basic, which I believe is also object oriented(?) but a little easier to understand? (not that I know what an object is anyway).

Any information people could give me regarding which language to learn, and if there are any good online tutorial for that language I'd really appreciate it. Some of the tutorials I've used so far are full or jargon I can't understand.

Also, I'm not afraid of maths having got an engineering degree.

Thanks in advance for any help/advice.

James
 
Associate
Joined
27 Jun 2009
Posts
1,350
Location
Manchester
If it was me I'd either:

Go the C# route using visual studio for building applications (lots of resources and books for learning)

Go the PHP route for a starting point into the world of web development, again lots of resources available.

Go the Javascript / HTML5 route and look at the new developments revolving around mobile app development if that excites you. This could start you looking at http://phonegap.com/ for creating basic apps which could lead onto UNITY stuff or even XCode if you really start to embrace your inner programmer.

I agree with the above that Python is a great language to start out on, but I personally don't see the job opportunities available compared to the above which seem to be the trend at entry level.
 
Soldato
Joined
27 Sep 2005
Posts
4,624
Location
London innit
I agree with the above that Python is a great language to start out on, but I personally don't see the job opportunities available compared to the above which seem to be the trend at entry level.

Recommended Python for exactly that reason. It's a great language to start out on, and will give an excellent foundation to build from.

C# is a nice language mostly at it's core, but it's all API learning really - same as Java. JavaScript is interesting, worthwhile to learn as a second or third language - mostly because it's a bit different.

PHP is an awful language to start with. It's easy to pick up, but do yourself a favour and learn something sane first.
 
Associate
OP
Joined
16 Oct 2012
Posts
3
Thanks everyone for the advice.

I think I'd like to learn a language that has a more 'normal' structure, so that I can apply what I've learnt to other languages, I'd rather not start with one that's completely alien to most other, if that makes any sense?
 
Soldato
Joined
16 Feb 2004
Posts
4,783
Location
London
Do you have a preference to any systems say linux vs windows? if you're completely happy with windows then C# is a great place to begin.
 
Associate
Joined
14 Feb 2012
Posts
455
There's plenty, I wouldn't really recommend C / C++ to start if you're new to it, fiddling with pointers can be quite annoying at first. You could always try Java. I've always seen Python as more of a scripting language (a very powerful one at that) rather than a programming language, probably won't land you too much work.
 
Associate
OP
Joined
16 Oct 2012
Posts
3
Hi everyone,

I did try C# a few weeks ago, and everything was using a layout type view to create windows forms. I hardly did any coding just putting values into boxes, and after a couple of week of this I felt I didn't know any of the language. Perhaps it was just a bad tutorial I used, or a tutorial focused too much on a certain thing.

So that's why I've been thinking about Java, can anyone recommend any good online tutorials?

And also what do people think my chances of actually gaining employment through the self-taught route are? Feel free to be brutally honest.

Thanks for your help so far everyone.
 
Soldato
Joined
27 Sep 2005
Posts
4,624
Location
London innit
I hired a developer recently with no experience and a Maths degree. I hired another guy with a couple of years experience running a fast food place.

Both were smart, personable and demonstrated that they had spent time learning about software engineering. They were both better than most Comp Sci graduates we interviewed.

Neither had experience in the language we use, but did know a couple of languages and were conversant in software development.

You'll need to do some reading, Agile, Patterns, unit Testing, OOP are good things to be conversant in. Your domain knowledge is useful, I know for instance Geologists that have retrained in Software that do very very well in the Oil industry.
 
Soldato
Joined
18 Oct 2002
Posts
3,926
Location
SW London
To be honest it sounds as though you were following a bad (although probably quite typical) C# tutorial.

These days out of a choice between learning C# and Java I'd always go for C# because of the functional programming aspects it includes nowadays, one of the areas where Java is severely lagging behind.
Something like Python or JavaScript has these concepts in as well though, if you fancy going down that route.

Personally my approach would be to try a number of different coding katas (google the term and you'll find plenty of websites with examples) and try doing them in a couple of different languages.
Take one example, work out the pseudocode and plan how it should work and then translate the logic into a couple of different languages.

And in terms of gaining employment, there are definitely things out there if you've got the skills.
I got my first development job a decade ago without a computer science degree or any commercial experience. The job market is generally pretty tough these days, so while it definitely won't be easy, it's certainly possible.
 
Soldato
Joined
17 Aug 2005
Posts
7,612
Location
Swindon
I have been learning a little as of late and have been going through the code academy pages for Python but they also have Java/PHP and a few others I believe. Nice short sections that cover varying aspects make it quite easy to learn in chunks.

I did also do some C# and followed some guide on MSDN site and made a few games/programs and whilst I understand what each part of the code was doing I struggled at putting it together myself.

There are some great videos for C# I had been working through as well and take notes in a pad for each vid, it covers pretty much everything I assume,

http://thenewboston.org/list.php?cat=15

The videos are around 5-8 minutes on average, he is clear and concise and explains things pretty well. Later on there are some things to try which tie all the skills so far together but I am not that far yet.
 
Soldato
Joined
27 Sep 2005
Posts
4,624
Location
London innit
I just watched a few videos from http://thenewboston.org/list.php?cat=15 on Interfaces.

I wouldn't bother watching most of them based on what I've seen, you'll pick up some REAL nasty programming habits, and he doesn't appear to understand what Interfaces are.

Here's a much better set of videos for that sort of thing:

http://www.wibit.net/curriculum/the_c_lineage/intro_object_oriented

Yeah that was horrible. He understands the syntax of it but not the purpose. Which is pretty special considering the name describes the purpose well.
 
Associate
Joined
25 Feb 2009
Posts
17
Have a look round and see what you like. Out of the languages mentioned I'd go for Python as it is a relatively popular scripting language that will allow you to explore the dominant paradigm at the moment (object oriented programming) but you have a lot of choice really. There are a lot of broader, cross-language skills that will prove to be more important in the longer term (architecture, testing, knowing web protocols such as HTTP and other web stuff like security if you want to be a web programmer, etc.).
 
Associate
Joined
24 Jun 2007
Posts
1,869
Location
Landan.
Never been a fan of Python but a lot of people are so well worth a look. As others have said the trick is to focus on learning the principles/paradigms/patterns/whatever you want to call them, the language you use is down to preference and context from there on out. Once you understand the concepts, picking up a new language is easy - only slow part is finding your way around the libraries etc :p

I'd recommend Java, it's always suited me/made the most sense to me (as if in I can easily learn/understand why something (i.e. in the core language) has been coded the way it has). The syntax is nice and easy (something I find a pain/chore with Python/Ruby but again that's down to personal preference) and it will give you a good grounding in OOP etc. Lots of applicability in enterprise too, and a huge 'ecosystem' surrounding it in terms of API availability etc.

Two good books I'd definitely recommend for learning the 'bigger picture' side of things:

Effective Java by Josh Bloch - amazing book that gives great background and knowledge on 'dos and donts' and effective design patterns. Obviously tailored towards Java but lots of portability in the concepts/ideas he's teaching.

Head First Design Patterns - some don't like the 'style' of the book, but again it's fantastic for teaching you basic principles to do with software development/OOP. If I remember rightly it gives code examples in C#, Java and Python, but still worth it if you decide on none of them. Strongly recommend.

Good luck!
 
Last edited:
Soldato
Joined
17 Aug 2005
Posts
7,612
Location
Swindon
How can I run Python in a similar way to C# in Visual Studio, allowing me to debug and run straight from the program like that? I liked VS for C# as it auto completes stuff and is pretty quick.
 
Back
Top Bottom