-
-
Save timjstewart/840b1dd2d4dd78265ca1 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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