Jump to content

  • Log In with Google      Sign In   
  • Create Account

We're offering banner ads on our site from just $5!

1. Details HERE. 2. GDNet+ Subscriptions HERE. 3. Ad upload HERE.


What I should know / learn to pursue a career in Programming?


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
14 replies to this topic

#1 GKANG   Members   -  Reputation: 163

Like
0Likes
Like

Posted 17 May 2012 - 12:33 AM

I'm 21 years old and live in England, and up until a year or so ago everything I did in school / college was about Music. Music theory, technology, production, live sound, industry etc. Little did I know back then that this was utterly pointless, even with a love for music, since these qualifications get you pretty much nowhere. Same goes for Art students a lot of the time, great subject, not so great for jobs.

Now today I love programming, and you can actually get in the area professionally. However, I've been looking at some of the listings and they seem to have super HIGH END requirements which look nearly impossible to accomplish.

So what do I need to do in order to reach a goal like that? Getting to the stage where I can be comfortable enough to apply for a Software Development job without feeling like you won't have a clue what you're doing? I know I could have started way younger, but I'm not old yet. I'm pretty sure that I should be going back to school, which I'm totally okay with. What I'm not sure about is what sort of subjects I'm going to need to take so that I have the well rounded knowledge programmers need.

As for now, I know this much:
- I need to program a huge amount on my own, in my own time.
- I need to have a logical brain, knowledge alone isn't enough.
- I preferably need to learn multiple languages to a standard where I can use them on a somewhat competent basis.
- I should learn Advanced Math and perhaps Physics (?).
- I may need to learn more about how languages work technically?

As you can probably guess, I'll be heading to University after college, so the subjects I take in college are basically going to be for support. I'd love for you guys to help me out, I'm totally ready to dedicate to this.

Thanks in advance.

Edited by GKANG, 17 May 2012 - 12:40 AM.


Sponsor:

#2 David Perfors   Members   -  Reputation: 235

Like
1Likes
Like

Posted 17 May 2012 - 01:44 AM

Depending on what you want to do as a programmer, you don't actually need Advanced Maths nor Physics, although it could be usefull some times...
Knowing a language (or more) is great, learning the concepts like Object Orientation, SOLID, Test Driven Development, etc and learn them really well is much more usefull. When you know those concepts (which you have to learn using a language of course) you can learn any language within months.
The problem is that thos concepts are not tought very much in Universities (at least not in the Netherlands), so you have to do some self teaching or find someone who is willing to mentor you.

About learning how the languages work, that would be usefull sometimes, especially when you are using higher level languages like C# or Java. Those languages can do a lot for you without you knowing exactly what happens. When there goes something wrong, you really need to know what happens inside the language.

#3 GKANG   Members   -  Reputation: 163

Like
0Likes
Like

Posted 17 May 2012 - 02:23 AM

Are you saying then that I shouldn't even go back to school?

Right now, I've been learning C++ from books, videos and forums. I've pretty much got the hang of it all the way up to starting to create templates. What I'm lacking in is knowledge of how to use it. I plan on reading through some of Lazy Foo's articles (state machines etc.) since that looks like it could help a whole bunch.

I'm trying to start with SFML for my first venture outside of the console. The problem I seem to be having again is how to use SFML once I've learnt all (or at least most of) the classes and stuff. It seems pretty difficult to find out whether you're coding in some completely obscure, inefficient way without someone or something to guide you.

Then there's knowing what else to learn. I hadn't even heard of SOLID or Test Driven Development until you just mentioned them, and am not really sure about whether I should be playing around with pre-built stuff (like engines and so on). I'm also not sure how much OUTSIDE of programming I need to know - things like 3D Modelling, animation, 2D/3D art. I'm sure I can get so far with programmer graphics and so on, but since I haven't studied these topics before, I'm assuming I'd be much better off learning about those before I get into bad habits too.

So yeah, I'm kind of looking for some guidance. As I said, a lot of it is learning how to actually use the language in ways I couldn't know without experience. I don't want to become a sloppy programmer with bad habits from the get-go. I'm totally fine with going back into education, I'm good for money to buy learning material, yeah.

Thanks for your reply man (:

#4 ApochPiQ   Moderators   -  Reputation: 16077

Like
2Likes
Like

Posted 17 May 2012 - 04:57 AM

Relevant.

#5 freakchild   Members   -  Reputation: 557

Like
4Likes
Like

Posted 17 May 2012 - 08:54 AM

GKANG you mention you are interested in programming. Forgive me if I missed it, but I don't notice you mention game development so I am assuming that at the very least you're considering regular non-game programming.

Have you thought of taking advantage of your music background with regard to game development? I say this because you obviously have at least had a passion for that in the past and you may not have to throw it all away.

You don't have to combine this with programming either, although if you do a very technical musician who can also program is nowadays a much rarer find in game audio departments and one quite a lot of people would value.

Just a thought.

#6 GKANG   Members   -  Reputation: 163

Like
0Likes
Like

Posted 20 May 2012 - 05:11 AM

GKANG you mention you are interested in programming. Forgive me if I missed it, but I don't notice you mention game development so I am assuming that at the very least you're considering regular non-game programming.

Have you thought of taking advantage of your music background with regard to game development? I say this because you obviously have at least had a passion for that in the past and you may not have to throw it all away.

You don't have to combine this with programming either, although if you do a very technical musician who can also program is nowadays a much rarer find in game audio departments and one quite a lot of people would value.

Just a thought.


Oh yeah man, I purposely missed the "game" part out. True enough, game programming is what I want to do, but I'm totally fine with having a programming job in some other area.

In fact a few days ago, I found out about an opening at a small company nearby to be a PHP programmer for their website. I hadn't learnt PHP, but since then I've been learning it and it's pretty much the same as C++. I learnt HTML years ago too, so brushing up on that is helping a lot. I have an interview on Tuesday and they said they're very interested in me, so that's great.

Also, I totally don't plan on scrapping my musical background. I'm definitely aiming to be a game programmer/musician guy when I end up joining some company, not just a programmer. It's one advantage I have from learning that stuff in school.


P.S. I already read your article Apoch, great job. I was going to reply to it, but I coudn't figure out how to put what I thought into words. Maybe I'll try that again sometime soon.

#7 Antheus   Members   -  Reputation: 2397

Like
0Likes
Like

Posted 20 May 2012 - 10:28 AM

I hadn't learnt PHP, but since then I've been learning it and it's pretty much the same as C++.


If I had to choose two things which are nothing like each other, PHP and C++ would be it.

#8 Marvel Magnum   Members   -  Reputation: 333

Like
0Likes
Like

Posted 20 May 2012 - 10:19 PM

I hadn't learnt PHP, but since then I've been learning it and it's pretty much the same as C++.


If I had to choose two things which are nothing like each other, PHP and C++ would be it.


LOL. Funny Posted Image

#9 David Perfors   Members   -  Reputation: 235

Like
0Likes
Like

Posted 22 May 2012 - 02:59 AM

Are you saying then that I shouldn't even go back to school?

I didn't say that, but in my experience school isn't always the best place, sometimes it is better to find an in depth course for a programming language and find out all the ins and outs of it. And most of the times these courses you can't find in schools.

#10 GKANG   Members   -  Reputation: 163

Like
0Likes
Like

Posted 22 May 2012 - 06:47 AM

If I had to choose two things which are nothing like each other, PHP and C++ would be it.


As far as language similarities, they're almost identical. The key difference is how loosely typed PHP is, but other than that, it's like I already know everything I'm seeing. Sure they may be used differently, but that's not what I was saying.

#11 ApochPiQ   Moderators   -  Reputation: 16077

Like
0Likes
Like

Posted 22 May 2012 - 10:47 AM

As far as language similarities, they're almost identical. The key difference is how loosely typed PHP is, but other than that, it's like I already know everything I'm seeing. Sure they may be used differently, but that's not what I was saying.


They both use curly braces and semicolons. Other than that, they are vastly different languages.

Consider: C++ has no triple-equality or triple-inequality operators (=== and !== respectively) but these are essential to certain types of comparison in PHP, especially when dealing with multiple types. Classes function totally differently in PHP and C++. So do global variables; c.f. the "global" keyword in PHP for instance. PHP has no namespaces. The standard libraries are wildly different in their offerings. PHP has no templates or macros.

And that's without getting into the list of things that the two languages are good for; have fun writing a Direct3D engine in PHP ;-) (And yes, you can write web sites PHP-style in C++ if you really want to use CGI, but it's still painful.)

It's very tempting to look at two languages and see that they use the same squiggly symbols, and assume that they are therefore similar languages. And yet the syntax - those symbols - is basically the least important aspect of any programming language.


To support my argument that syntax is irrelevant, consider multilingual quines and macros that make C look like Pascal. There's also the Lisp family, which via macros (different kind of macros though) can be made to look like virtually any language under the sun.

#12 GKANG   Members   -  Reputation: 163

Like
0Likes
Like

Posted 22 May 2012 - 11:21 AM

I'm just starting out man. Since I started (see: from the very start), I've learnt how to use if statements / switches, for /while / foreach loops, functions (and passing by reference), arrays, classes and inheritence etc. It's all pretty much identical.

I know how == and === work, C++ doesn't need the latter because of its strong typing. I'm assuming also that PHP doesn't need templates because of its loose typing. Global variables are different, sure, but it's not an enormous difference in terms of how it's going to effect the language. No namespaces, right, but again I'm talking about everything I've learnt so far.

If you've been a programmer for years and years then I'm pretty sure that this thread looks hilarious. Again though, I'm only saying that the things I listed at the start of this post are all I've learnt so far and are identical to what I've learnt in C++. You could probably say it's the same as any other programming language too, my point is that I'm surprised at how similar the logic is between different languages.

#13 CdrTomalak   Members   -  Reputation: 272

Like
1Likes
Like

Posted 22 May 2012 - 11:21 AM

Hi GKANG - interesting post!

I've been in the I.T (Software) industry professionally for almost 13 years now so thought I'd share my thoughts with you.

It is true (I think) that having a grasp of maths is useful. I enjoyed maths as a kid, and studied pure maths at college (A-level) along with Computing. I went on to study Computing at university, and this worked well for me. When I graduated I started as a developer, and went on to work in a number of different roles. Having a mind which can grapple with maths, formulas, problem solving, is really useful in the programming discipline.

If it is definitely feasible for you to progress to university, I'd say studying computing is a good idea - or something similar. You'll be introduced into the principles of programming lanaguages, OOD, databases, architecture, the software engineering process etc. This will put you in good stead. There will probably be more technical purist degrees, such as computer architecture, which will focus on low-level programming - it really depends what you are looking to do. It might be worth picking up a prospectus for a university, and looking at course profiles. Then look at the prerequisites to that course, and decide to fulfill those prerequisites. Think about what type of developer you want to be - what kind of technical job you would want to be doing in 10 years time. It's worth a thought.

I find employers prefer degree eductated programmers, but that's not to say you MUST have one. You can get lighter qualifications and still get a developer job - in which case studying in your own time will really help during an interview. Employers love to see enthusiasm, as I'm sure you know. Good luck with your current application by the way! 8D

It's hard to understand what your current qualifications are, but as you've been into music production you are probably technically minded. I find programming very similar to maths, in that the priciples of elegance and structure apply. They also apply to music.

I picked up the points in replies saying that modern languages like C# and Java do a lot for you, and they're right. For example, if you want to search through an array for a particular item, whereas years ago you'd knock up your own algorithm and function for this, now you don't have to. However, as has been alluded to, there can be a certain discomfort when you don't really know what the function is doing (binary searches for example) to achieve the result. Laying foundations of knowledge, such as learning about how programming languages evolved to their current point, and learning about algorithm design - will both help you familiarise yourself with the world of programming.

It's worth thinking carefully about your learning strategy - the sequence of events, and not trying to take huge steps at once - but rather gradual ones. I tip my hat to you taking on C++, as this is something I could not face - mind you, I studied C and Java at university, and chose to learn c# due the syntax similarity with Java plus the OO aspect. C++ is a more difficult language to master I think. If you're a total beginner it might be worth starting with C, mastering that, then stepping up to C++.

Anyway, hopefully something I've rambled on about might be useful to you. Feel free to give me a shout about anything - although there are countless people on here with better coding skills and in depth knowledge than I.

#14 ApochPiQ   Moderators   -  Reputation: 16077

Like
1Likes
Like

Posted 22 May 2012 - 11:40 AM

I'm just starting out man. Since I started (see: from the very start), I've learnt how to use if statements / switches, for /while / foreach loops, functions (and passing by reference), arrays, classes and inheritence etc. It's all pretty much identical.

I know how == and === work, C++ doesn't need the latter because of its strong typing. I'm assuming also that PHP doesn't need templates because of its loose typing. Global variables are different, sure, but it's not an enormous difference in terms of how it's going to effect the language. No namespaces, right, but again I'm talking about everything I've learnt so far.

If you've been a programmer for years and years then I'm pretty sure that this thread looks hilarious. Again though, I'm only saying that the things I listed at the start of this post are all I've learnt so far and are identical to what I've learnt in C++. You could probably say it's the same as any other programming language too, my point is that I'm surprised at how similar the logic is between different languages.


Sorry, not trying to rag on you or anything :-) My point isn't that there are no similarities (you're correct - there are many, especially on an abstract level where you deal with the general flow of logic etc.) but that the similarities aren't as important as they may look.

Consider it the perspective of many long years of learning new languages - certainly not some kind of judgment of your position. To be fair a lot of the really significant differences between most languages (imperative ones at least) are very hard to appreciate without years of experience and lots of languages under your belt.


Where you're at is a perfectly legitimate position. Here's a better way to drive at what I'm saying: Spanish and Italian have a few words in common, and a bit of grammatical structure in common. If you're 3 weeks into learning both languages, with just a small vocabulary and a little bit of sentence structure to work with, you would be correct in observing that they have a lot of superficial similarities. (After all, both are Romance languages, so that stands to reason.) However, as you get further along, don't be surprised if your opinion on how similar they are starts to change :-)

Anyways, probably enough harping on that. Here's the important part of why I bring this up at all: once you start noticing the differences between languages beyond syntax and basic structural elements (conditions, loops, functions, etc.) you'll be advancing to a new level of programming ability. To accelerate that, see if you can identify some crucial differences between the languages you're learning on your own, and see if you can think up why those differences might be important and why one language went one direction while the other differs. This is an excellent exercise and will help you a lot (or so I believe). You're already doing well in noting the difference in type systems between C++ and PHP; see if you can find anything else :-)

#15 GKANG   Members   -  Reputation: 163

Like
0Likes
Like

Posted 23 May 2012 - 06:11 AM

Thanks Apoch and Tomalak for your replies.

Tomalak: Your post was a great read, thanks for sharing that with me. I was planning on doing just what you suggested (looking for university courses, checking the requirements, getting those requirements), and I have a careers meeting set up for next week to try and get me onto the right track. I feel like this is all really late in the game to be 'starting' though, since at minimum school will take 5 years until I graduate (I'll be 26), but I'm thinking it's better than plowing along and hoping I can make something of myself solely through self-taught methods. The interview I had went really well, but yeah it was too good to be true. The guy who interviewed me was one of two programmers at the company and was leaving, I figure he didn't think I could take on his duties as well as what I'd be doing there anyway. I suppose this leads nicely onto Apoch's post.

Apoch: Yeah man don't sweat it, my posts have probably seemed really dumb so far. You're right, when you know as much as I do things look pretty similar, but that's only because I really haven't learnt all that much yet. Right now I realize that saying "hey, I can write classes with inheritence!" is pretty abismal, I should really get back to studying more before I try and prove that I know anything to anyone. I am having trouble with learning though, mostly with things that I can't necessarily learn from books eg. code structure. Using a language is going to be a whole different process that I'm guessing can only come with time - hopefully without massive journeys in the complete wrong direction.


Anyway, thanks again to you guys and everyone who posted in this thread. I'll try my best to keep my feet on the ground and I'll see how my careers meeting goes next week.




Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS