I have a diploma as a Programmer/Analyst but it's been years since I've done anything to do with programming. I got into a different field after graduation kind of by fluke and ended up maintaining an office and server.
I'm looking to get back into programming and was wondering what's better to start with.
Ruby or Python?
Or am I better to focus on something else? I originally learned Visual Basic 6 and C++ but figured it was probably better to focus on something more current for re-learning things.
Suggestions?
To be honest the importance of a specific programming language is largely overstated in my opinion.
What matters more is to acquire expertise in the architecture of a program. That is, how to divide information into data structure, split functionalities into routines and libraries, etc.
Once you have learned a programming language to a reasonably advanced level, it is not difficult to learn another one (with a few exceptions).
To get started Python is not a bad choice because it is not too difficult. No dynamic memory allocation and no need to compile it. There is a plethora of libraries available for many applications.
I think Ruby is good as well but I don't know it.
Currently Golang (also called Go) is also very popular.
Yep, only time that breaks down is when you cross paradigms, such as imperative to functional as the structure and how you do things is worlds apart.
But within a paradigm all skills translate. Really easy to move between C style languages as the basics all feel really familiar :)
If you want to see what I mean in the shift of mind set in functional languages I wrote a series building the basics for a roguelike game in F#. Detailing the thought process I went through as I wrote it.
Here is the final part in the series but it links to all the earlier parts.
A real succinct language that when you are used to reading it makes a great deal of sense but can look like gibberish when you first encounter as you can partially apply functions. This means you can them with too few arguments and it results in a new function with the remaining arguments. The functions do not actually call until they get the last argument they need.
Thanks, I'm gonna check out your series.
Thanks I appreciate all the feedback you gave. It's overwhelming getting back into it when the last time I was heavily doing it was in Visual Basic 6 and C++ but I think you're right about if you understand the principles it translates well between languages.
depends at the level you want to work. UI/Web and hard to avoid JavaScript/HTML5 although Elm is very interesting.
Move lower down the stack and things like C++/C# are popular. I am a huge fan of C# over C++ although C++ still has huge traction.
Python is a great language but things like F# and Haskell are gaining ground. Facebook has one of the biggest Haskell stacks out there although they still run a lot of PHP (oompf I have just thrown up in my mouth) lol
All boils down to where you like to work and the languages you like :)
That's the complicated thing. I've been out of the game so long it's hard to figure out where to jump back in. I guess I'll take your advise and focus on what I really want to do with the language before going full steam ahead.
Best thing. I found I am happiest below the UI level, better fit with my mind. So my weapons of choice are C# and F#.
I have gone through all the normal Basic, VisualBasic, C, C++, Java, JavaScript, SQL etc before I fell in love with C#.
C# is a C style language with some great syntax and language sugar and no pissing around with memory management :)
Over the last few years though I found Functional languages and those I really love. I prefer ML style over Lisp style though as Lisp is bracket hell. I picked F# as it interacts with C# and .NET so a natural fit. I dabbled with Haskell which is one of the most beautiful yet mind melting languages I have encountered. Just when I think I have groked it my mind melts again and I realise I haven't. lol
I don't know if I'm more motivated or less after this. It just becomes so overwhelming haha. I appreciate all the info and I'm going to check out the one's I haven't heard of that you mentioned.