Yet another "returning to programming, what should I learn" thread

Brule

Golden Member
Apr 23, 2004
1,358
0
76
Howdy,

I know these threads are common but given my situation I'm still not sure what I should focus on. The last time I did any serious programming was 2003-2005 or so and now so much has changed, especially the use of frameworks. When I was a comp sci student we were the last year they started off with C++ and not Java. I learned OOP using C++ and still very much think in that mindset. I also had some experience in (old) HTML, Java, and MIPs.

I'd like to get back to things with my priorities being Android, Linux, and web applications/mySQL. Obviously I'll have to keep up Java to do anything with Android. Outside of that I'm very curious about Python, Ruby, and Node.js but have never used them. I have started with a simple LAMP setup to get rid of the rust, but now I'm now sure I should even learn PHP deep as so many people are gaga for Python/Ruby. I will try out a bit of each but I would like to know how it progresses, how the frameworks compare, that sort of thing I can't learn in a few days or weeks even.

So here's the question. Given my history what languages should be my priorities? I love the structure of C++ and trying out PHP it feels so unstructured and loose. Python looks very interesting but still feels weird to look at. Ruby I know little about. Maybe there's another option I haven't mentioned?

Java will get work, but what would compliment it well? Any help would be appreciated, I'm a little lost and the frameworks are overwealming. Something like a top 3 list, in order, from someone familiar with the languages would be great if you'd be willing. Thanks for reading this far!
 

Brule

Golden Member
Apr 23, 2004
1,358
0
76
I should add I'm not wanting this to be a full time job right away. I'm disabled and can't do a 9-5 but when I am feeling halfway normal I have free time. I'd like to work on a few pet project ideas and would love to help out on something open source. I was always a talented programmer, even though I lack much real world experience.
 

ikachu

Senior member
Jan 19, 2011
274
2
81
I think your best bet may be to pick an open source project you want to work on and then learn whatever languages are needed for that project. For me at least, whenever I've tried to learn a language without a clear use for it I forget it once I've completed the tutorials.

Python is more popular than Ruby where I work, but I think that's mostly because I'm in firmware and there's a lot of people with Perl experience, and it seems like that's a pretty easy transition. Although I do have to hear a lot of grumbling from set-in-their-ways firmware engineers who hate the whitespace in Python.

I've heard a lot of good things about Ruby and Ruby-on-Rails from my web developer friends. I don't think you can really go wrong either way.
 

Brule

Golden Member
Apr 23, 2004
1,358
0
76
Thanks for the response ikachu. I'm the same way with forgetting unused languages. I went and learned basic Perl but without having to use it it'd be lost on me now.

I guess for now I'll mess around with both, hopefully finding a project before I get too heavily invested in either one.
 

lynna

Junior Member
Sep 19, 2014
15
0
0
I'm a newbie in programming too and I would love to learn a lot about it but I don't exactly know how to start. I'm looking for a cheap programming online course where in I can learn everything I have to know from the basic to the latest.
 

Pia

Golden Member
Feb 28, 2008
1,563
0
0
I'm a newbie in programming too and I would love to learn a lot about it but I don't exactly know how to start. I'm looking for a cheap programming online course where in I can learn everything I have to know from the basic to the latest.
I teach programming, and my recommendation for someone learning on their own is to start from these. Free book plus a free online course using Python.

http://learnpythonthehardway.org/
https://www.udacity.com/course/cs101
 
Mar 1, 2007
30
0
0
Modern C++11/14 makes C++ programming much easier than it used to be, so I would recommend that, and you can use it to create cross platform modules for mobile apps. Java is also a good choice, and there are plenty of jobs for it.

I've read that Ruby doesn't scale very well (although that's likely to change), but for smaller projects you should be OK.
 
Last edited:

DrMrLordX

Lifer
Apr 27, 2000
21,815
11,171
136
If you are going to go after Android, you should take a look at some of the design docs and see how XML-heavy it can be (layouts, fragments, the manifest, etc.). You don't HAVE to use any XML outside of the manifest (er, I don't think), but knowing XML inside-and-out (and how Android likes to use it) would probably be to your advantage.

If you are making your own apps, you can probably kick XML to the curb. An employer might expect you to know it, though.

Also bear in mind that there are some Java language features that are unsupported by Android/Dalvik. A few things, like switching on Strings, will break anything compiled for a target API lower than 19 (that doesn't mean that a compliance level of 1.7 and a target API of 19 or 20 renders your app incompatible with older Android versions, mind you). Your experience with older Java versions may make that less of a problem.
 

alkemyst

No Lifer
Feb 13, 2001
83,967
19
81

SteveGrabowski

Diamond Member
Oct 20, 2014
7,131
6,001
136
I'm a newbie in programming too and I would love to learn a lot about it but I don't exactly know how to start. I'm looking for a cheap programming online course where in I can learn everything I have to know from the basic to the latest.

Study 6.00 from MIT OCW or from edx. Beautiful intro to programming, using Python. Then move on to studying SICP, either on MIT OCW's 6.001 or an old CS61A course from Berkeley webcast (the new one used since about 2010 uses Python and is way less polished). I prefer the latter since it uses a way better Scheme interpreter, though you'll probably need to run Linux in a VM, as I don't think there is a Windows port of the STk interpreter. The book, SICP, is absolutely free online from MIT Press, and is a masterpiece. He's an intro to the book/course from one of the authors:

http://www.youtube.com/watch?v=2Op3QLzMgSY

Don't laugh at functional programming: multicore systems have made it more important it's a hot topic in CS right now.
 

clamum

Lifer
Feb 13, 2003
26,255
403
126
1. Android, as you mentioned. Think of a simple app idea (doesn't matter if it's already been done) and code it up. Pick up a book if you want (I started with Android for Dummies and later picked up Android Programming-Pushing the Limits, and Android Programming-The Big Nerd Ranch Guide). The Android Developer website has lots of info as well.

2. Microsoft .NET MVC 5 (or 4). You can use C# or Visual Basic but I'd recommend C#. The syntax is quite similar to Java so you should be able to pick it up quickly enough. Heck, I got hired for a .NET developer job with no .NET experience, and only Java in college (my dev job outta college), and did fine so you can too. Get the Express version of Visual Studio and SQL Server and you're set. I love the .NET framework and technologies that go with it and there's a ton of work out there for good devs.

3. Learn JavaScript and then jQuery. Then work AJAX into that. Also check out Backbone.js.

4. Further delve into programming concepts. Brush up and practice identifying which design patterns work in which situations, and why. Learn dependency injection, etc.
 

Spungo

Diamond Member
Jul 22, 2012
3,217
2
81
So here's the question. Given my history what languages should be my priorities? I love the structure of C++ and trying out PHP it feels so unstructured and loose. Python looks very interesting but still feels weird to look at. Ruby I know little about. Maybe there's another option I haven't mentioned?
You could probably learn Perl very quickly. It has the familiar { } brackets and ending lines with semicolons.

Ruby almost feels like a meta joke that went too far. The syntax is very lolcat-esque.
value = 0
if value.zero? then
puts "value is zero"
end

Get it? If it be zero, then I puts down that it be zero, yo. It reads like broken English, which is rather interesting. This probably appeals to people who like Visual Basic. I personally can't stand this syntax.

Java will get work, but what would compliment it well? Any help would be appreciated, I'm a little lost and the frameworks are overwealming. Something like a top 3 list, in order, from someone familiar with the languages would be great if you'd be willing. Thanks for reading this far!
I'm thinking architecture-agnostic programs are the future. Look how popular the ipad is. Look how many people own smart phones. I think your #1 priority should be the Java platform. Keep in mind JVM supports lots of different languages; not just Java.
#2 would be C# for Microsoft's .NET platform. People are always predicting the death of desktop computers, and they might be correct, but do you think Microsoft will die any time soon? Not a chance. Windows works on x86, it works on x64, it works on mobile devices, it worked on Itanium. Whatever the next big architecture is, you can expect to find Windows on it, and it will support .NET.

To brush up on your skills, try helping other people learn coding. Stack Overflow is a good site for that.
 

ringtail

Golden Member
Mar 10, 2012
1,030
34
91
Python is useful

(once you get the hang of the troublesome concept that white space is significant)

because you can apply it right away in your math work in Sage
 

alkemyst

No Lifer
Feb 13, 2001
83,967
19
81
Python is useful

(once you get the hang of the troublesome concept that white space is significant)

because you can apply it right away in your math work in Sage

not so much whitespace as keeping items grouped with the same indentation if they belong together.
 
sale-70-410-exam    | Exam-200-125-pdf    | we-sale-70-410-exam    | hot-sale-70-410-exam    | Latest-exam-700-603-Dumps    | Dumps-98-363-exams-date    | Certs-200-125-date    | Dumps-300-075-exams-date    | hot-sale-book-C8010-726-book    | Hot-Sale-200-310-Exam    | Exam-Description-200-310-dumps?    | hot-sale-book-200-125-book    | Latest-Updated-300-209-Exam    | Dumps-210-260-exams-date    | Download-200-125-Exam-PDF    | Exam-Description-300-101-dumps    | Certs-300-101-date    | Hot-Sale-300-075-Exam    | Latest-exam-200-125-Dumps    | Exam-Description-200-125-dumps    | Latest-Updated-300-075-Exam    | hot-sale-book-210-260-book    | Dumps-200-901-exams-date    | Certs-200-901-date    | Latest-exam-1Z0-062-Dumps    | Hot-Sale-1Z0-062-Exam    | Certs-CSSLP-date    | 100%-Pass-70-383-Exams    | Latest-JN0-360-real-exam-questions    | 100%-Pass-4A0-100-Real-Exam-Questions    | Dumps-300-135-exams-date    | Passed-200-105-Tech-Exams    | Latest-Updated-200-310-Exam    | Download-300-070-Exam-PDF    | Hot-Sale-JN0-360-Exam    | 100%-Pass-JN0-360-Exams    | 100%-Pass-JN0-360-Real-Exam-Questions    | Dumps-JN0-360-exams-date    | Exam-Description-1Z0-876-dumps    | Latest-exam-1Z0-876-Dumps    | Dumps-HPE0-Y53-exams-date    | 2017-Latest-HPE0-Y53-Exam    | 100%-Pass-HPE0-Y53-Real-Exam-Questions    | Pass-4A0-100-Exam    | Latest-4A0-100-Questions    | Dumps-98-365-exams-date    | 2017-Latest-98-365-Exam    | 100%-Pass-VCS-254-Exams    | 2017-Latest-VCS-273-Exam    | Dumps-200-355-exams-date    | 2017-Latest-300-320-Exam    | Pass-300-101-Exam    | 100%-Pass-300-115-Exams    |
http://www.portvapes.co.uk/    | http://www.portvapes.co.uk/    |