4 ms·
Depends on what you want. Option 1: web hacker guy (doesn't take long). Option 2: skillful, reasoned programmer guy (takes way longer). Option 1. Python is n
by caffeine 17y ago
Depends on what you want. Option 1: web hacker guy (doesn't take long). Option 2: skillful, reasoned programmer guy (takes way longer).
Option 1. Python is not a bad choice, and neither is Ruby. In either of those languages, in a couple weeks, I'd say you can write yourself a "Guestbook" or something. Spanning the Gamut of "Web 1.0 apps" like forum, guestbook, blog/cms, etc. in a language is a nice easy way to get the basics.
Completing option 1: You can hack together simple web apps. A bit more effort will get you enough Javascript to use jQuery.
Option 2. Start with Scheme. Check out HTDP and/or SICP (google the acronyms). You can write real, useful programs in Scheme and/or you can move into Clojure, which lets you write anything you could write in Java (i.e. the libraries are all available). Spend some time here - write some simple games, and then maybe a web app with the existing frameworks. Consider picking up a language in the ML family, or Haskell, to learn about purity. In fact - with Clojure and e.g. Ocaml, you've got enough speed & flexibility than you probably never need to learn anything else. But...
Next, learn C. C is a great beginner's language for imperative programming. It's less ulcer-inducing than assembly, but you're still close to the machine. You'll want to implement a book of basic CS data structures and algorithms in C, and deal with all the thorny issues involved in making them fast and stable. In particular, you'll notice that cool data structures are really just different ways of re-arranging pointers. Conversely - by re-arranging pointers, you can do a LOT of cool stuff!
Eventually, you'll have to learn about OOP despite all the functional craze these days, so go to Java. Much of the online literature about OOP was written for Java. Go to Java before C++ - but eventually, get to C++, because everybody uses it.
At the end of option 2, you will have a good layer of fundamentals. You will hopefully have done at least 1 or 2 projects in functional, close-to-the-metal, and OOP environments. Hopefully, you will have gone through and implemented the standard CS algorithms/data structures in each one, understanding the subtleties therein. You can confidently go on from here to learn the skills how to write video games, databases, trading platforms, custom server apps, etc.