TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Ask HN: Help a self taught programmer wannabe what to do next

11 点作者 lucasrp超过 11 年前
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.<p>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&#x27;s Ng machine learning course, and i&#x27;m finishing Programming Languages by Dan Grossman. Besides the theory, i&#x27;m working on a few pet projects envolving machine learning. Learned git basics, and read the news reguarly on Hacker News.<p>I have major holes in my lnowledge that i would like to fulfill now. Programing per se, and algorithms don&#x27;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).<p>The thing is, i know nothing about:<p>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.<p>Without learning (i) and (ii), it&#x27;s impossible to envolve my pet projects into something really usable.<p>I want to learn how programs talk with each other, how they are deployed, event loops, how machines are provisioned, and stuff.<p>Any sugestions? I&#x27;m not afraid learning &quot;the hard way&quot;, but i would really appreciate it something like moocs, with baby steps and immediate feedback of the progress.

3 条评论

angersock超过 11 年前
Some helpful starting points:<p>Learn about the Unix Way: <a href="http://c2.com/cgi/wiki?UnixWay" rel="nofollow">http:&#x2F;&#x2F;c2.com&#x2F;cgi&#x2F;wiki?UnixWay</a><p>Learn about crufty neckbeard stuff: <a href="http://doc.cat-v.org/programming/" rel="nofollow">http:&#x2F;&#x2F;doc.cat-v.org&#x2F;programming&#x2F;</a><p>(cat-v has all kinds of interesting things)<p>Learn C: <a href="http://c.learncodethehardway.org/book/" rel="nofollow">http:&#x2F;&#x2F;c.learncodethehardway.org&#x2F;book&#x2F;</a><p>No, really, learn C: <a href="http://www.amazon.com/C-Programming-Language-2nd-Edition/dp/0131103628" rel="nofollow">http:&#x2F;&#x2F;www.amazon.com&#x2F;C-Programming-Language-2nd-Edition&#x2F;dp&#x2F;...</a><p>Learn about networking with sockets: <a href="http://www.beej.us/guide/bgnet/" rel="nofollow">http:&#x2F;&#x2F;www.beej.us&#x2F;guide&#x2F;bgnet&#x2F;</a><p>(it&#x27;s in C, but the principles are in other language bindings as well)<p>Devops&#x2F;sysadminning is mostly just damned superstition and voodoo and hard-fought experience...that said, consult notes from others: <a href="http://users.cis.fiu.edu/~tho01/psg/" rel="nofollow">http:&#x2F;&#x2F;users.cis.fiu.edu&#x2F;~tho01&#x2F;psg&#x2F;</a><p>~<p>If you want more hands-on experience, setup a VPS and make something: <a href="http://feross.org/how-to-setup-your-linode/" rel="nofollow">http:&#x2F;&#x2F;feross.org&#x2F;how-to-setup-your-linode&#x2F;</a><p>If you find stuff in there you don&#x27;t understand, ask your devs for help.
mcintyre1994超过 11 年前
I&#x27;m a second year Computer Science student now, so hopefully I can give you a few ideas.<p>Along with Intro to CS, maths for CS is pretty important. You said you have a strong math knowledge - probably stronger than mine, so I&#x27;ll just point out that you want discrete maths. If you&#x27;re comfortable with discrete structures - sets, trees, graphs, logic, recursions, not to worry. This course looks pretty solid if you want a look, <a href="http://www.saylor.org/courses/CS202/" rel="nofollow">http:&#x2F;&#x2F;www.saylor.org&#x2F;courses&#x2F;CS202&#x2F;</a><p>You said algorithms don&#x27;t worry you, but how much work have you done there? You want to know data structures - and methods for designing algorithms. Take a look here, <a href="https://class.coursera.org/algo-004/lecture/index" rel="nofollow">https:&#x2F;&#x2F;class.coursera.org&#x2F;algo-004&#x2F;lecture&#x2F;index</a> and here, <a href="https://class.coursera.org/algo2-002/lecture/index" rel="nofollow">https:&#x2F;&#x2F;class.coursera.org&#x2F;algo2-002&#x2F;lecture&#x2F;index</a>, to see how comfortable you are with that content.<p>After that, I can&#x27;t say I&#x27;m an expert in Linux. Maybe it would be a good idea to take a course in computer architecture - you get a much better understanding of what&#x27;s really going on. I haven&#x27;t taken either, but you could consider <a href="http://www.coursebuffet.com/course/87/260-Computer-Architecture" rel="nofollow">http:&#x2F;&#x2F;www.coursebuffet.com&#x2F;course&#x2F;87&#x2F;260-Computer-Architect...</a> or <a href="http://www.coursebuffet.com/course/289/260-Computer-Architecture" rel="nofollow">http:&#x2F;&#x2F;www.coursebuffet.com&#x2F;course&#x2F;289&#x2F;260-Computer-Architec...</a>.<p>If you want theory on computer networks, this course looks good <a href="https://www.coursera.org/course/comnetworks" rel="nofollow">https:&#x2F;&#x2F;www.coursera.org&#x2F;course&#x2F;comnetworks</a>.<p>More practically, it really depends what you&#x27;re doing. An OS course will probably introduce you to sockets and networking in C, but you&#x27;re probably not using C - it&#x27;s probably a matter of learning some APIs for whatever you&#x27;re writing in.<p>Also if you&#x27;re deploying web services, Coursera have a startup engineering course, <a href="https://www.coursera.org/course/startup" rel="nofollow">https:&#x2F;&#x2F;www.coursera.org&#x2F;course&#x2F;startup</a>, some of that could be helpful? It looks like they use Amazon Web Services for deployment though, so if it&#x27;s something you want to learn yourself I&#x27;m not too sure sorry.<p>Sorry that&#x27;s a bit long winded, if you have any questions feel free to ask :)
Skoofoo超过 11 年前
For how to use Linux well, it helps to become very familiar with the UNIX shell. I recommend reading The Linux Command Line* for this.<p>* <a href="http://linuxcommand.org/tlcl.php" rel="nofollow">http:&#x2F;&#x2F;linuxcommand.org&#x2F;tlcl.php</a>