|
Hi everybody!
I work as a product manager, and decided that the best thing for me to learn is to code, so i can understand what the devs are talking, and can weight tradeoffs better, without bothering them with simple things. I think that MOOCS are one of the best things that happened in internet in last few years, and i became a avid consumer of them. I did introductory courses (Harvards CS50 and MIT 6.00x). Did Andrew's Ng machine learning course, and i'm finishing Programming Languages by Dan Grossman. Besides the theory, i'm working on a few pet projects envolving machine learning. Learned git basics, and read the news reguarly on Hacker News. I have major holes in my lnowledge that i would like to fulfill now. Programing per se, and algorithms don't afraid me ( i think i learned it fast because a i have a very good foundation on math (enough to understand machine learning theory, for example). The thing is, i know nothing about: i) Infrastructure: How to deploy, how to monitor, how to use linux well ii) Networking and asynchronous programming: My programs are always linear and take inputs from files. Without learning (i) and (ii), it's impossible to envolve my pet projects into something really usable. I want to learn how programs talk with each other, how they are deployed, event loops, how machines are provisioned, and stuff. Any sugestions? I'm not afraid learning "the hard way", but i would really appreciate it something like moocs, with baby steps and immediate feedback of the progress. |
Learn about the Unix Way: http://c2.com/cgi/wiki?UnixWay
Learn about crufty neckbeard stuff: http://doc.cat-v.org/programming/
(cat-v has all kinds of interesting things)
Learn C: http://c.learncodethehardway.org/book/
No, really, learn C: http://www.amazon.com/C-Programming-Language-2nd-Edition/dp/...
Learn about networking with sockets: http://www.beej.us/guide/bgnet/
(it's in C, but the principles are in other language bindings as well)
Devops/sysadminning is mostly just damned superstition and voodoo and hard-fought experience...that said, consult notes from others: http://users.cis.fiu.edu/~tho01/psg/
~
If you want more hands-on experience, setup a VPS and make something: http://feross.org/how-to-setup-your-linode/
If you find stuff in there you don't understand, ask your devs for help.