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

科技回声

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

GitHubTwitter

首页

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

资源链接

HackerNews API原版 HackerNewsNext.js

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

The Ugly Side of Learning to Code

73 点作者 tweiss将近 13 年前

20 条评论

steve8918将近 13 年前
I took this entire year off to learn new things, like web programming, etc. I have around 20 years of programming experience, with a background in C/C++, so I had a very significant advantage over the writer of the article in terms of getting started in that direction.<p>But I did come across similar things that the writer talked about. I first went about it by choosing Python/WebPy as my backend, and then switching to Wordpress as a front end for my website because I got tired of having to do every single little thing, and subsequently learning PHP. Then I started focusing on Javascript, jQuery and AJAX. My website is hosted on EC2, so I needed to understand how that all worked (not nearly as difficult). Then I tried learning how to make a Facebook app, so that ended up taking a few weeks, since the documentation is amongst the worst I've ever encountered in my career. I needed to figure out how nginx worked in order to get certain things working, and I also needed to learn the basics of Photoshop and Illustrator and basic graphics techniques. Luckily I have several friends in design that helped me get over this hump.<p>These last 8 months haven't felt like an exercise in learning how to program more so than 8 months of constant problem solving. Sure, I learned a bunch of new technologies, but my main goal was to get up some web-based projects, and every step of the way I encountered problem after problem, and my job was to solve these problems by any means necessary. Solving these problems entailed me having to learn Javascript, jQuery, Photoshop, Illustrator, etc. I didn't relish the idea of having to keep learning new stuff, but I did it because I knew it was the fastest way to solving my problems. I can't say I'm an expert in any of the technologies above (I constantly get Javascript and Python syntax mixed up in my head, and I google 80% of what I need), but I can solve just about any problem that I've come across.<p>I think this is the key to bootstrap yourself and doing anything related to technology, be it programming, sysdmining, etc. It's not so much the love of constant learning, but rather not giving up in the face of constant roadblocks, and constantly attack problems over and over and over and over again until you solve them. Don't get me wrong, I've very much enjoyed learning these technologies, especially Javascript which is a wonderful language (despite its flaws), and so much more powerful that I ever thought. But I know I've only started the scratch the surface.<p>As well, another big factor is keeping a high level of emotional energy in order to keep pursuing your goals. One of the things I was working on was using Tesseract to do OCR on uploaded image files. After 3 weeks of trying to get it to work, I achieved about a 97% accuracy, but because of some underlying bugs that I didn't understand, it wasn't good enough. I was frustrated and disappointed and finally gave up on it, and moved onto my next project, which I finished in about 2-3 weeks. But after that, with renewed energy, I decided to give it one more go at my problem, and spent another week at it. This time I used OpenCV in conjunction with Tesseract, and achieved almost a 100% accuracy, but more importantly, I figured out a way to get around the bug that had been dogging me on my first attempt.<p>I'm at the point now where I'm not a "great" web programmer, but I definitely can take a design from one of my friends, and implement it, pretty much to spec. I'm not fast, and I'm not creative, but I'm confident I can solve just about any problem I need to in order to finish my task.
评论 #4409831 未加载
评论 #4410212 未加载
评论 #4410028 未加载
jorgeleo将近 13 年前
"Coding uses a lot of thinking patterns that I hadn't really used since my math and statistics classes in college, and even back then not in this intensity"<p>And<p>"I guess my point is, that if you want to become a programmer, you have to be comfortable with having to learn new things constantly for the rest of your life."<p>So many conversations around "but I want to be a programmer, do I really need to learn math? Really, really?"<p>Yes, you do. But more disturbing than the resistance to learn math is the resistance to learn. Period.<p>What i like about the article is that, all though the writter admits there are some challenges, he does not whine about them, but instead he overcome them. Because of that, he has a good chance at succeeding in programming, or anything else for that matter.<p>Maybe not in 6 months... But he will get there
评论 #4409162 未加载
评论 #4409412 未加载
评论 #4409035 未加载
评论 #4424886 未加载
评论 #4409144 未加载
rasmusrygaard将近 13 年前
I think this post touches on an interesting point about web development (might apply to other areas too, but the web seems particularly bad). A lot of things appear to be easy (Rails, Django, Heroku, AWS, JQuery etc.), but the number of different components you need to manage is still overwhelming. Furthermore, you often end up having to develop a low-level understanding of problems that someone else claimed to have solved for you. While this low-level knowledge is useful, it does add significant amounts of complexity for beginners and people who might not be committed as the hardcore full timers out there.<p>As we seem to push more and more for the "everybody should learn how to code" mindset, I think there is a big opportunity for someone out there to combined managed and protected environments with the ability to write your own code. I don't know if the solution is unifying languages across front and back end or a better set of abstractions, but I see way too many obstacles for 'simple' coding (although the situation today is without a doubt better than ever), and I imagine this is some of what the author of this post ran into.
评论 #4408974 未加载
Futurebot将近 13 年前
For some careers, particularly technical ones, "learning for life" / autodidactism are no longer optional. You're required to keep up with all the latest research, trends, tools, and a variety of other things that make you current. Sure, having a solid foundation helps, but is no longer enough (I'd argue it hasn't been enough for a long time.) You're required to learn every day to keep up.<p>What some here (who I'd venture are more likely than the median person to be autodidacts) may find surprising is that many people find the idea that you have to "keep learning stuff after college" distasteful, even abhorrent. The "go to college so you can get some job and then do what you 'REALLY' want with your life" thing is vanishing quickly, and the level of competitiveness in society (well, in America at least) is increasing.<p>The economic disparities this creates have been discussed at length, but the social ones less so. The fact that some careers require non-stop learning for these people means that in some ways school never ends, and the post-college, "no more competition" sigh of relief never comes. To me this is neither good nor bad, just inevitable at this point, but I think understanding the perspective of those who can not or will not follow the self-learning-for-life path is important. If nothing else, people here will know the reason that they are so grumpy.
redCashion将近 13 年前
I wish more business guys would try to learn programming, so well done sir. But I do have a quibble with this statement:<p>&#62; if you want to become a programmer, you have to be comfortable with having to learn new things constantly for the rest of your life".<p>In my experience, the quickest way to tell that someone is not cut out to be a programmer is when they complain about the amount of continual learning that is a requirement of the job. The only way you can become a great programmer is if you LOVE learning new things, and the prospect of there being a great wide expanse of things yet unlearned fills you with excitement instead of dread.<p>So I think beyond having to be comfortable with that process, it better be something innately necessary to you or you will get burned out on this job.
评论 #4408918 未加载
评论 #4408923 未加载
flatline3将近 13 年前
&#62; <i>is it possible to become a decent programmer ...</i><p>No.<p>&#62; <i>... and build a MVP in just six months?</i><p>Yes.
评论 #4408977 未加载
suriyawong将近 13 年前
This article was good until it got ugly.<p>"As a result I've become more focused, more logical and smarter. But I've also become more detached from everyday life and less fun to hang out with. I'm not sure yet if the change is permanent, but I certainly hope that it can be undone :)"<p>I agree that coding is a constant learning process. But to suggest that this in some way makes you more detached from the world, and/or less fun to hang out with is ridiculously biased. I would like to believe the opposite is true. Programming and computer science in general have given me a sense of appreciation for the world and nature's algorithms that I could not have fathomed before. The social applications of strong logic and focus are infinite. Choosing to learn how to learn, or learning to program, does not mean you are choosing to become an introverted nerd or an extroverted socialite. I've learned nothing is really black and white (binary) like that.<p>As an example of how being more focused and logic can help, consider the scenario: You're talking with your girlfriend about who gets to be the designated driver one night, and all of a sudden the extra back rub you gave that one day three summers ago gets brought up as a bargaining chip in the argument. Reminding yourself and the other party to think logically and focus on the task at hand and not bring up things that are sure to spark dissension helps reduce these digressions and tangents during conversation. I think it is important that both parties in an argument at least can agree on what they're arguing about, and also at least on the scope of the argument. Now, I'm not just better at debate because of coding. My point here is that my life is enriched because can overlook the little things a lot more than I used to. I won't lecture my son for leaving his towel on the ground while it is wet when we're on vacation, because I have the focus to keep in mind what really matters: we're on vacation to relax and enjoy ourselves. This kind of easy-going behavior takes consideration and patience, given my short temper. Both consideration and patience are crucial to becoming at least a functioning programmer. It is even more than just patience and consideration though that are real life applications of traits strengthened through coding. When my friends and I are joking around, we tend to just morph and change jokes in a recursive manner to keep them interesting and to keep our lives exciting.<p>Being original is hard to do, and lots of original material is just old material tweaked a little bit. Our friend's name was Diego during the first iteration of his nick-name. Recursively and through several iterations, it changed to Diegs (Dee-eggs). Which changed to D-eggs. Which when he was very drunk became Grade D eggs. Which changed over time to just "Eggs." And you can use your imagination to guess how many different ways you can make eggs, and I can bet you almost all of them were used, and also used in conjunction ('fried, scrambled eggs') to address our friend, Diego.<p>Now, you sir, should not be convinced that learning to program makes you less attached to the world, and less fun to hang out with. On the contrary, you should embrace your powerful logic and focus and use it to enhance your life experiences and your disposition rather than to detract from them.
jyu将近 13 年前
Web development is definitely getting easier, but it's still not easy. I spent a lot of my past 4 years doing conversion optimization and testing out different marketing channels. So I was exposed to basic html/css/php/mysql. But that didn't really prepare me for web development.<p>I'm about 4 months full time into web dev, and there's just so much that goes into developing a web app. And then there's the team component. And then the web app needs to scale. Ruby, Rails, MySQL, MongoDB, Javascript, how to set up the hosting, software design best practices, debugging, etc. If I didn't have a mentor or peers help me through this I seriously don't know long it'd take to figure out all the different pieces and how they fit.
TYPE_FASTER将近 13 年前
"I guess my point is, that if you want to become a programmer, you have to be comfortable with having to learn new things constantly for the rest of your life."<p>I think that applies to anything, if you want to have any measure of success, especially these days.<p>"So the lesson I've learned is that - even though I like coding - I enjoy building products even more."<p>Yeah, never say that to a developer.
skylan_q将近 13 年前
"As a result I've become more focused, more logical and smarter. But I've also become more detached from everyday life and less fun to hang out with. I'm not sure yet if the change is permanent, but I certainly hope that it can be undone :)"<p>6 months away from programming, and you'll be fine :)
评论 #4408856 未加载
评论 #4408716 未加载
评论 #4408870 未加载
评论 #4409063 未加载
评论 #4409599 未加载
samirageb将近 13 年前
This article was pretty interesting to read, but unfortunately drew one incorrect conclusion...<p>"I guess my point is, that if you want to become a programmer, you have to be comfortable with having to learn new things constantly for the rest of your life."<p>This conclusion implies the rate of learning experienced in those 6 months would be the same forever, and I think that's not entirely realistic. While technology is rapidly changing, it's FAR more sustainable to maintain knowledge across a wide variety of areas than continue at the pace and breadth the OP experienced.<p>Also, it depends on your field/focus. If you're talking about web programming, sure. If you're a C++ app programmer, chances are your world isn't changing too dramatically each year.
tweiss将近 13 年前
Sorry guys if you get a server error page, seems like my heroku dev postgres can't handle ANY traffic. I haven't implemented connection pooling yet and I run out of db connections way to quickly ... will try to fix it or set up my own db!
评论 #4409047 未加载
评论 #4409048 未加载
berodam将近 13 年前
This article hits really close to home. After graduating college and getting a job in biotech I quickly realized that I don't want to spend next 30years in front of a lab bench, dealing with FDA etc. so I have been learning to code. starting with Django (i knew some Python beforehand) then I realized I need some javascript, jQuery, git, MySQL. The only difference is that I love it. Each technology provides something that blows my mind. My experiment started in May and is going while I'm holding on to my lab job. By October I hope to have a portfolio going, I have two apps ready. I really hope it will all pan out.
amitparikh将近 13 年前
&#62; "I'll never become a good programmer, but I strive to be the most capable brogrammer I can be."<p>Being a competent programmer is a prerequisite to being a "brogrammer" (whatever that means).
评论 #4408863 未加载
Stefan_H将近 13 年前
I have a real problem with this:<p>"I guess my point is, that if you want to become a programmer, you have to be comfortable with having to learn new things constantly for the rest of your life."<p>I really feel like this is the outlook everyone should take on life, not just programmers. Maybe the causality ought to be switched; good programmers are people who have a "learn something new every day" outlook on life. Hell, it could even be said that good people in any field are those who take that viewpoint on life.
victorhn将近 13 年前
I always thought that "less fun to hang out with" people were attracted to programming, as it requires more solitude and attention to detail thinking, and now you are saying that even "normal" people seems to get this kind of mindset after some time.<p>Maybe i should quit programming some time to see if i can reverse to a more social style of thought.
评论 #4409184 未加载
daguar将近 13 年前
The difference between a business person and a programmer: an intrinsic love of learning new things.<p>Programmers make better entrepreneurs because (shock) loving the act of learning new things as an end in and of itself makes you way, way better at it.
stephengillie将近 13 年前
When I'm with friends, I'll get caught up in how a service, site, or app is assembled (i.e. interfaces, wrappers, cloud server connections, etc), and take a conversation with friends off on a tangent they aren't interested in.
rizwan将近 13 年前
tweiss, by actually building the full-stack (front-end to back-end and deployment/ops), you've compressed the "out-of-comfort-zone" feeling all programmers eventually face from years to a few months. Bravo!
guscost将近 13 年前
Code is a messy experience.