As someone who's studying computer science, I also want to give my thoughts.
Sakana wrote:1) I made a huge error when I dropped out of a computer science at the age of 18. Now I'm in a field I like, but suits my nerdy, neurotic and introvert personality much less than I imagine a job related to programming would. I'm 28 now and have only recently taken up programming again. Is it complete madness to think about getting an extra degree (in CS) at this point?
What brimstoneSalad said. It's a great, and still growing, field with a future. If this is what you really like, go for it.
Sakana wrote:2) Do you have any advice w/ regards to how best to learn? Recently I studied a scripting language called mSL very intensely because I had something complicated, but very specific, in mind that I wanted to create. This meant I became fluent in this scripting language relatively fast. Now I'm fooling around with Python, but I don't have anything in mind I need/want to create, so it feels like I'm just reading a lot without coding - aka not really getting anywhere. Should I stop reading until I think of some kind of project?
Python is a great choice if you're interested in a scripting language.
What you absolutely shouldn't do in this field, is just reading and not coding. You have to get your hands dirty if you want to master it. Not that you shouldn't read: you really should, but it's extremely important to actually get some experience (it's like learning to swim).
Something you can do to start off programming:
- You can look around whether someone you know wants a website, or app or something.
- Think about something you're doing a lot by hand (manually), and see if it can be automated.
- Take a look at simple open-source projects (maybe on Github), and see if you can fix a bug or add a feature (and maintain it).
- Or just make something you actually want. Maybe a game, or a tool to organize stuff, or whatever.
3) What language should I learn if I want the language to be platform independent and something that is relevant for professional programming? Java?
Java is a great language if you want platform independence because of the JVM which runs on all sorts of platforms. JavaScript is also still growing, and extending it's platform reach (as a multi-platform solution to mobile apps, Node.js, etc.).
But do keep in mind that JavaScript doesn't have a very good language design. It's important to understand the concepts, practices and principles behind your code, so you don't have your mind strangled within one particular language.
brimstoneSalad wrote:What matters is fast iteration in development.
I know Agile is currently big and for good reasons, but don't get to worked up by it. See which methods fits best with your project. How strange it may sound, some projects are actually better done with a waterfall model. Software development methodology is important, but it's not the most important thing for a beginner.
brimstoneSalad wrote:Java is slow and cumbersome with regards to execution, but processing power is so cheap for most modest tasks today that unless you're doing something intensive, it doesn't matter.
The last part is most important. Java performance isn't really an issue for most usages. But don't underestimate the JVM by saying it's slow. It's slow compared to C, sure, but there has been done a lot over the years to increase performance. The trade-offs of doing things like memory management yourself is most of the times not worth the trouble.
Zalek wrote:I prefer C# because IMHO Visual Studio is better then Eclipse (I use VS to write in C# and Eclipse to write Java apps for Android).
Although I recognize that the IDE is a big part of your language decision, don't just choose a language merely because of the IDE it comes with. I agree that Eclipse isn't all that great, but I guess you missed out on the major popularity increase in
IntelliJ IDEA by Jetbrains. (Android development today is also done in a Jetbrains IDE; Android Studio)
Neptual wrote:Well if you're looking for one that will make you the most money take a look at C/C++ and Java. A lot of companies require you to have experience in these.
That's not true. Those are very popular languages which lots software developers know: that's not where the money lies. Learn COBOL and go maintain legacy systems if you want money. But be prepared to get a boring life.