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

科技回声

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

GitHubTwitter

首页

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

资源链接

HackerNews API原版 HackerNewsNext.js

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

How did you go from being an adequate to exceptional programmer?

17 点作者 lunarprose超过 11 年前
I&#x27;m new to web development and am primarily self-taught. I know enough to get my own site live, make it look good, and make somewhat nuanced decisions about its architecture and the best method for accomplishing X task.<p>But now I feel stuck. I just started working full-time as a software developer (!) and was hoping this experience would help me learn a ton--however, for whatever reason, work is relatively slow and I end up doing what I already know or am left out of any &quot;teaching&quot; going on.<p>I&#x27;m a little nervous I&#x27;m stuck when it comes to my skills and don&#x27;t know what to look&#x2F;ask for next. What experience&#x2F;situation allowed you to learn the most? Was it an awesome mentor, a great freelance project, some course you took? Is it something I could find at work or does real learning come when you&#x27;re working on your own projects?

12 条评论

codegeek超过 11 年前
I will give you one general advice about getting exceptional at anything which should also apply to programming. When you learn something, try to learn the &quot;why&quot; of it and not just the &quot;what and &quot;how&quot;. Once you master the &quot;whys&quot; of a topic, you will realize you have got really good at it already. Challenge yourself and others about conventions and understand why things are done a certain way. What if you try to do it differently ? Does that make sense ? Does it make it better or worse ?<p>When it comes to programming,learn to break things. In programming, it is easy. Put bad code on purpose and see how and why it breaks ? I remember one of our excellent CS professors who told us that the best way to learn pointers in C&#x2F;C++ is to write pointers that don&#x27;t work. Leak some memory. Create null references. I never understood that for a while but now I do.<p>Oh and the common advice: practice practice, practice. Do the same thing over and over again even if it is repetitive. Again to give you an example, I was really good at Math as a kid and I remember I got even better when one of the teachers gave me a book in which for every topic, there were 50+ questions that were very similar. he wanted me to do all 50 of them. I was like &quot;why cannot I just do 3-4 of each type and move on to next&quot;. But again, after doing the 50, I mastered it.<p>Having said all this, I don&#x27;t think I am exceptional at most of the things (certainly not programming) but I am so sure that these are some of the actions that makes one exceptional.
评论 #7030965 未加载
logan5超过 11 年前
Work environment doesn&#x27;t necessarily always help. It comes down to how experienced and brilliant co-workers are plus whether they care deeply about clean design and clean code. In some places, there are A programmers from which you will learn a lot. In other places, it&#x27;s broken windows, so the attitude of the people is &#x27;it works, so why bother.&#x27;<p>To answer your questions, I find awesome code and techniques through books and from the internet. Keep reading new books even if you have become familiar with the language. Try working on your own projects because different problem sets demand different way of solving things which will not be offered through normal work environment. Write small games, puzzle solvers, etc. Understand how things work and be familiar with the tools which you can then incorporate back to your work.<p>Another way of improving your programming skills is by learning a completely different programming paradigm. That will make you think differently when solving problems even if you don&#x27;t end up using that particular language.
评论 #7032034 未加载
zkar超过 11 年前
Programming is more than just writing code. Programmers must also assess tradeoffs, choose among design alternatives, debug and test, improve performance, and maintain software written by themselves and others. At the same time, they must be concerned with compatibility, robustness, and reliability, while meeting specifications.<p>It is important for a Software developer you must be willing to work outside of their comfort zone. Technologies are constantly changing, and as developers we must execute integration or updates that we have never done before. By pushing yourself to try new things, you end up being exposed to more code and alternative ways of tackling issues. This drive to constantly learn and do new things that makes the difference between a good developer and a great developer.<p>Don&#x27;t be afraid to break stuff. Breaking things is an important part of learning process.<p>Don&#x27;t try to be great. Being great involves luck and other circumstances beyond your control. The less you think about being great, the more likely it is to happen.
EnderMB超过 11 年前
I think being great at something isn&#x27;t really something that you can teach. I also think that very few people hit a brick wall and stop being able to learn how to be an exceptional programmer. If you ask people that are REALLY good at something how they are so good, more often than not they&#x27;ll shrug their shoulders and will probably tell you they don&#x27;t know.<p>For me, the only way to become really good at something is to keep learning, and to ensure that you know of your own failings. If you don&#x27;t know what you don&#x27;t know, you won&#x27;t try and fix those holes in your knowledge.<p>If you are aware of what you suck at, it&#x27;s easy to pick that knowledge up through experience. If you are going through the motions and aren&#x27;t finding yourself challenged, it&#x27;s extremely easy to not learn anything of use. An exceptional programmer will have probably spent most of their careers working on problems they didn&#x27;t know the answer to, and as a result have built up a huge body of knowledge.
wturner超过 11 年前
Learn in a manner where you would have to teach it. The bad part about this approach is it forces you to confront how little you really know. The good part is...well, the same. If the cool kids at work won&#x27;t let you into the &#x27;teaching&#x27; then you will be forced to make your own way. This is a good lesson because companies generally don&#x27;t care about you. So make sure you care about yourself. I should add I&#x27;m not &quot;exceptional&quot; , but for how little time I&#x27;ve been doing it I&#x27;m good with regard to my subset of interests. If it wasn&#x27;t for the the above methodology this would not have happened.
ACow_Adonis超过 11 年前
I don&#x27;t really think I&#x27;m &quot;great&quot; per se, but there&#x27;s several things that really &quot;upped&quot; my abilities beyond someone who was just comfortable with ifs, loops and arrays.<p>Now I should state that all these things are with respect to how to learn things, not with what makes the best employee&#x2F;product.<p>1) Getting a job where I could program&#x2F;learn full time. Once I picked up the skill that other people hadn&#x27;t learnt, then I became &quot;the SKILL guy&quot;, which means that you get more work based on that skill, which lets you learn even more.<p>2) To learn things, I would set myself the goal of trying to do every task in one language. And I mean every task, including tasks that it sucked at. Whereas other people just took the pre-written tool&#x2F;software and used it, I wanted to see if i could do it from scratch. Its not the best way to do business, but its the best way to learn something inside and out.<p>3) Plain stubborn persistence and realizing there are no hard problems&#x2F;theories&#x2F;techniques, just ones you haven&#x27;t spent enough time studying and getting familiar with. Its ok not to know or understand things. What&#x27;s not ok is to run away from them because you don&#x27;t know or understand them. There&#x27;s a lot of fragile egos in programming&#x2F;academics&#x2F;business where people try to insinuate that because they don&#x27;t understand something its &quot;not worth knowing&#x2F;is useless&quot;, or that you are stupid for not understanding what they understand. Forget all that and just keep bashing away at a topic, looking for different opinions and perspectives on how to pick it up, and when you understand something on your 8th go, you&#x27;re now on equal footing with the person who understood it on the 1st go (if there ever was such a person, and there often isn&#x27;t).<p>4) Always pushing my self into the things that I can&#x27;t do. This is a bit weird, because most of our school systems condition one to do the things you score well at and avoiding the things you fail at. Screw that. You might get good grades and a job but you will never grow as a person that way. If you&#x27;re only given projects you &quot;can do&quot; at work, try to mix it up by doing it in a way, or with a language, or with a perspective that you can&#x27;t currently do.
评论 #7035256 未加载
评论 #7036095 未加载
lmm超过 11 年前
The three great virtues of a programmer are laziness, impatience and hubris. I picked up some skills from the first guy I worked with out of college (pair-programming is great), but more important than that was the attitude. Cultivate a sense for when you&#x27;re doing something by hand that the computer should be able to do for you, then figure out (or ask someone) how to get the computer to do that. Keep doing that and in a few years what you do looks like magic to your previous self.
评论 #7031256 未加载
评论 #7030739 未加载
wglb超过 11 年前
Practice, try new things, learn more languages.<p>Check out <a href="http://blog.jenniferdewalt.com/post/56319597560/im-learning-to-code-by-building-180-websites-in-180" rel="nofollow">http:&#x2F;&#x2F;blog.jenniferdewalt.com&#x2F;post&#x2F;56319597560&#x2F;im-learning-...</a>.
robotwholearned超过 11 年前
not saying that I know anything, but from what I can tell it is time and practice. Don&#x27;t think that something is &quot;beneath&quot; you, just keep building stuff. Read books, talk to other people that know something. Talk to people who don&#x27;t. I am not sure if you should ever reach being an exceptional programmer, because there is always more to learn. Also: depending on the language, try to solve problems without looking up how to solve it, and then compare your solution to other peoples. You may solve the problem, but sometimes you can be quite surprised about how much more someone knows, so they can teach you little things that really deepen your understanding of a language.
bliti超过 11 年前
You just gotta put in the time. Experienced programmers still get stuck and will feel like you do a lot of times.
eetduddet超过 11 年前
Teach yourself more about the tools you use, like frameworks, servers, OSes, editors, etc.
评论 #7030769 未加载
makerops超过 11 年前
I&#x27;ll let you know when I get there.