Skip to content

Instantly share code, notes, and snippets.

@timjstewart
Last active January 20, 2016 17:45
Show Gist options
  • Select an option

  • Save timjstewart/840b1dd2d4dd78265ca1 to your computer and use it in GitHub Desktop.

Select an option

Save timjstewart/840b1dd2d4dd78265ca1 to your computer and use it in GitHub Desktop.
Hi <Brother-In-Law>,
I hear that you are interested in learning a computer programming
language.
Since there are so many different programming languages, I thought I'd
share one resource that attempts to calculate programming language
popularity. Theoretically the more popular a language is, the bigger
the market for the language. That resource is the TIOBE Index.
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
For example, it shows that Java has just recently become the most
popular language.
But popularity is only part of the story. One other part is what
kinds of programs you want to write. You can build all kinds of
things with Java but if you want to build software that runs on some
game consoles or smaller devices (e.g. pacemaker, small robots, disk
drives, etc.) or if you want to build operating sytems or device
drivers for operating systems (like Windows or Linux), then Java is
probably not the way to go.
Whatever language you choose, there is fantastic website where you can
find answers to common programming questions/problems. You can also
pose your own questions there if you like:
http://stackoverflow.com/
My stackoverflow page is:
http://stackoverflow.com/users/26002/tim-stewart
Another part of the language selection puzzle is your circle of
friends. If you have some friends who program in Java, it will
probably be fun discussing your progress and challenges with these
friends.
There are a number of websites that offer free courses on programming
languages. One of my favorites is:
http://www.coursera.com
They use videos to teach and you can just "audit" the courses for
free. Here are some Coursera courses that might be interesting:
https://www.coursera.org/learn/java-programming
https://www.coursera.org/learn/java-programming-design-principles
https://www.coursera.org/learn/java-programming-arrays-lists-data
Another site I like named Udacity has this Java course:
https://www.udacity.com/courses/cs046
If you do pick Java, you'll want an easy way to create projects,
compile code, debug your programs, etc. Programs that do all these
things are called Integrated Development Environments or IDEs. The
one I recommend the most is called IntelliJ IDEA. It is free for
non-commercial use. You can find it here:
https://www.jetbrains.com/idea/
If you want to see what Java topics people are discussing, you could
check out:
http://www.reddit.com/r/java
https://www.reddit.com/r/javahelp
If you want to see all the classes that ship with Java and what they
do:
https://docs.oracle.com/javase/8/docs/api/
If you find you like Java (or programming in general), one book on
program design that's done very well is "Head First Design Patterns":
http://www.amazon.com/Head-First-Design-Patterns-Freeman/dp/0596007124
Another awesome book is "Thinking in Java":
http://www.amazon.com/Thinking-Java-Edition-Bruce-Eckel/dp/0131872486
They say that two of the best ways to get good at programming are 1)
write lots of code and 2) read lots of code. One great place to find
code to read is GitHub.com a place where you can share code you've
written with others.
Here are a couple of projects you might want to glance over:
https://github.com/JodaOrg/joda-time/tree/master/src/main/java/org/joda/time
https://github.com/douglascrockford/JSON-java
Other languages that you might be interested in:
Python - this language is very popular (#5 on the TIOBE list)
especially in finance, science, machine learning, and math . It has a
great source of libraries that can make solving some hard problems
easy.
Node.js - this language is not on the TIOBE index but a lot of "the
cool kids" use it. It is very popular for writing web services out
of. I'm not a fan of it but thought I'd mention it.
C# - I used this language for about 4 years and it's got a lot of cool
features. I mention it because it's one of the languages that
Microsoft Unity allows you to write 2D/3D games in. If writing games
is cool to you, then I'd at least check out C#.
I don't want to bias you but there are some languages that I would
avoid: PHP, PERL, and Visual Basic. A lot of people like them but a
lot of people also like eating boogers. That's all I'll say about
that.
Let me know if you have any questions.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment