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

Started by
13 comments, last by GKANG 11 years, 11 months ago

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.

Wielder of the Sacred Wands
[Work - ArenaNet] [Epoch Language] [Scribblings]

Advertisement
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.
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.

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 :-)

Wielder of the Sacred Wands
[Work - ArenaNet] [Epoch Language] [Scribblings]

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.

This topic is closed to new replies.

Advertisement