Page 1 of 2

I'm thinking of starting a course in programming - advice?

Posted: Wed Aug 15, 2012 3:32 pm
by moonpie
Ive been looking into computer sciences course and programming courses of various levels/lenghts and qualifications - and Im sort of overwhelmed with which direction to take. (And possibly wanting to branch off into audio software development of some sort hopefully. Thats the idea - need to make some basic money 1st to get by..)

Ive been keeping in mind the warning that some courses can become outdated extremely quickly (or at least by the time youve finished the course.) And I want to try aim to learn something that will a: get me a job (no doubt work experience will be a major part of that) and b: I can eventually join up with my real interest for music. (Studied music at college)

Im not sure if theres something I could be working on in my spare time to help move things along or get familiar with the basics of any particular programming language. Something that would benefit me in the long term.

Anybody have any advice on how they would start off these days? Or anybody made mistakes wishing they had started with another branch of software development?

The thing is, Im starting what I think is quite late by most peoples standards - i.e. mid 20s, so I have to make sure I dont make a mistake in course decision and Im trying to find as much info as possible. I have a head for computers and problem solving, and I feel I missed out not taking this direction earlier.

Programming isnt something Ive ever done, closest Ive gotten to was tinkering to learn pure data. :) My younger brother did a year of CS, which involved Java, and it seemed really manageable. Ive done some IT support in my past, but that aint the same discipline - and if I ever have to defrag, repartition, install unsigned drivers, virus scan a PC again that isnt my own Ill go insane.

Re: I'm thinking of starting a course in programming - advice?

Posted: Wed Aug 15, 2012 4:42 pm
by littlepig
Having worked in IT for some time here are a few comments:

I don't think your age is a problem.

If you go for a basic skill (like C or Java) it shouldn't outdate too quickly. There are always new versions of these languages coming along but the basics of the language stay the same. Once you have the basics you can then go into more specialized aspects. I think that C is more useful if you want to develope music software on pc or mac.

The biggest problem in getting a programming job is having experience. I read a funny quote somewhere that most employers want 'someone with 3 years experience of a product that is 2 years old'. Once you have some experience it is a lot easier...

Re: I'm thinking of starting a course in programming - advice?

Posted: Wed Aug 15, 2012 4:46 pm
by 3dot...
computer science is rather theoretical..
I think if you're going for a bachelor degree then go towards "software engineering" degree or something in those lines..
with more "hands-on" experience..
I was going to study.. but work got in the way...
I still intend to go back to it at some point...

Re: I'm thinking of starting a course in programming - advice?

Posted: Wed Aug 15, 2012 5:00 pm
by antarktika
I've just started learning basic programming at 30, so don't worry too much. I agree with the above, you should start with something like C, as it will help you get to grips with programming. It can do a lot, though with considerably more effort than later languages, but once you learn it, you will know a language that is fairly robust, and have the basics of programming down to move on to more recently developed languages.

Re: I'm thinking of starting a course in programming - advice?

Posted: Wed Aug 15, 2012 5:16 pm
by darkenedsoul
Hot languages at this time (and been for awhile) are Java and C++ with maybe C# coming in behind those 2. If from a Microsoft/Windows perspective C# is kind of a meld of Java and C++ (so it is touted). But Java runs on all sorts of devices from web app servers to phones. Structured learning, i.e. class is better IMHO since you have an instructor to assist with problems/concepts vs doing any of the myriad of tutorials online. Funny thing in regards to that is most are similar (C#/C++/Java) other than some syntax for the basic tutorials online. But those are the big 3 IMHO for languages to get a handle on, and once again, there will be a LOT of familiarities between them syntax-wise.

For instance:
Java - System.out.println("Sum is " + sum);
C# - System.Console.WriteLine("Sum is " + sum);
C++ - cout << "\nSum is " << sum << endl; (Ok C++ a bit different but since all object oriented languages most concepts should be the same/similar and no, I'm not a pro coder/developer :mrgreen: )

Re: I'm thinking of starting a course in programming - advice?

Posted: Wed Aug 15, 2012 8:19 pm
by Tone Deft
this is supposed to be a great place to learn, their CS section is new.

http://www.khanacademy.org/cs

learning to code is one thing, I started teaching myself languages when I was a kid. learning to code DSP algorithms is a LOT tougher than you'd think. my first exposure to that stuff was after several semesters (5?) of calculus at a university. the math is really weird stuff.

stick with max/msp and the common stuff for hobbyists. you can do a LOT with them, the heavy lifting is taken care of and it will integrate into your hobby immediately. I've had fun in the past dinking around with msp while watching TV after work, making filters with LFOs and whatnot. you can do a LOT of great audio stuff with max/msp. you can also encapsulate the stuff you teach yourself (IIRC Java and Perl) into max objects. do all the tutorials and see how you feel about it. there's a STEEP learning curve but once things are rolling it's addictive.

C and Java are the way to go. the Python community is having fun hacking Live, you might want to start lurking their web sites and digging in. give yourself a project to code up. I took lots of classes in C, it wasn't until I had my first internship that I genuinely learned the language.

if you want to see how it's all done, try and get a demo version of MatLab (retail is about $2k.) that's the main design tool used for audio algorithms. you might be able to bypass learning the math with it, I don't know how far you could take it. you'd have a big V12 engine but no chassis to put it into.

Re: I'm thinking of starting a course in programming - advice?

Posted: Wed Aug 15, 2012 8:48 pm
by 3dot...
khanacademy is awesome.. wish I had this stuff as a kid...
I'm going through their levels slowly..
btw c++ or stfu...

Re: I'm thinking of starting a course in programming - advice?

Posted: Wed Aug 15, 2012 8:56 pm
by Tone Deft
3dot... wrote:btw c++ or stfu...
didn't know you were a programmer.

it's all about Verilog, bitch.

Re: I'm thinking of starting a course in programming - advice?

Posted: Wed Aug 15, 2012 8:58 pm
by 3dot...
I'm not... (!)
u ate my bluff...
:P
Image

Re: I'm thinking of starting a course in programming - advice?

Posted: Wed Aug 15, 2012 9:26 pm
by Tone Deft
you have many tells.


mainly you're pretty cuckoo to begin with, always running the pot up. ;)



ya never know, with max/msp and the like it's really cool to see artistic minded people get techy.

Re: I'm thinking of starting a course in programming - advice?

Posted: Wed Aug 15, 2012 9:31 pm
by 3dot...
seriously though...
going into programming is not an easy feat.
it goes deep...

there are 2 ways you can go about it...(imo)
start light and go harder..
or start at the top and work your way down...

the 1st way that is not written in stone... ( the "right" way it gives you good habits)
javaScript (the most fundamental scripting language which is oh so useful) .. or C
you'll soon get the grasp of many things through js... html.. sql...regular expressions..working with libraries..etc.
this would be a good place to start messing around with php.. python etc...
>>>next
java / C# ( Object Oriented... safely typed... "interepereted" languages that are well founded)... you'll get notions of extra stuff like... "design patterns" ... "multi-threading"
>>>next
C++ (the loose cannon.. where having knowledge... experience (good habits) is essential to not f@#$ up...)
I'm somewhere at the 2nd stage I think...

the 2nd road to success .. starts at C++ in addition to computer science theory...
then anything "higher level" should be like a breeze of fresh air...
if you can go "lower level" than C++ like assembler then the force is already with you...

there are many similarities between programming languages so knowing 1 Object Oriented language like Java for instance...and it's concepts ..
will mean you can relatively easily adjust to another OO language ...
if not there are always compilers/interpreters that attempt to translate between languages...

what I'm saying is dive in ... but prepare yourself to be immersed... it's a lot of studying material...

Re: I'm thinking of starting a course in programming - advice?

Posted: Thu Aug 16, 2012 12:55 am
by Davo
Start simple. The problem with more modern languages like Java, C++, C# is that you can easily get lost in the extensive libraries and the object-oriented ideas. I suggest learning C as your first language. If possible get a copy of Kernighan and Ritchie (K&R) and a free C compiler (find out what a comppiler actually does) and work through K&R at the command prompt. This is a fantastic book and the concepts and skillls you learn from it will never be outdated. If you are serious about learning programming then do a computer science course, including a paper abut the theory of computerr science. You will benefit from learning lots of languages. Almost all of the languages mentioned here so far are "procedural" languages, but there are other types such as logic languages (eg prolog) and functional languages (LISP, Haskell). Each gives a different perspective on computation and will broaden your skills as a programmer.

Re: I'm thinking of starting a course in programming - advice?

Posted: Thu Aug 16, 2012 5:36 am
by bigbadotis
C/C++ is always going to be the best choice to learn audio programming. There are just too many things (audio units, vst, max/msp externals etc.) that you can't do without C. There's no reason to start with a higher level language like Java / C# / Obj-C if you're primarily interested in audio programming.

If you decide to start with a scripting language, learn JavaScript. Being able to write sample-level DSP and update at will without having to recompile anything is liberating. Check out my browser-based, JavaScript live-coding project Gibber if you're curious (Chrome, Firefox, Safari 6+ only):

http://www.charlie-roberts.com/gibber
http://www.charlie-roberts.com/gibber/info

Re: I'm thinking of starting a course in programming - advice?

Posted: Thu Aug 16, 2012 7:41 am
by timothyallan
I'd go with some theory first. Learn about OOP and memory, loops, pointers, variables and all the foundations for all of the languages before diving "into" a language. C/C++ is pretty hardcore for a noob, but it also gives you a foundation for every other language.

The good thing about starting there is that with all the fluffier languages, like C# for example, you'll know what it's doing behind the scenes.

Re: I'm thinking of starting a course in programming - advice?

Posted: Thu Aug 16, 2012 10:58 am
by pgmjsd
timothyallan wrote:I'd go with some theory first. Learn about OOP and memory, loops, pointers, variables and all the foundations for all of the languages before diving "into" a language. C/C++ is pretty hardcore for a noob, but it also gives you a foundation for every other language.

The good thing about starting there is that with all the fluffier languages, like C# for example, you'll know what it's doing behind the scenes.
Definitely learn as much theory as you can stand. Languages and technologies come and go. Mathematics and logic (not Logic ;) ) will always be there. If you're considering making a career of it, then look into pursuing a Comp. Sci. degree.