TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

How to Become a Better Developer

101 pointsby bitsweetover 11 years ago

18 comments

tieTYTover 11 years ago
Something missed in this article is the need to reflect and have personal retrospectives. Back when you first learned to code, you may have chosen names for your variables like `foo` and `bar`. This was fine when you&#x27;re learning how an if statement or a for loop works. But once your program gets a little more complex it&#x27;s hard to keep track of what `foo` or `bar` represent.<p>I notice a lot of people who run into these <i>types</i> of problems and consider it to be just the way things are. This makes your productivity plateau. But, the reflective programmer notices the meta problem and asks, &quot;How can I make this easier to think about?&quot; In this specific example, the answer is to give the variable a meaningful name. I think you&#x27;ve gotta be reflective to learn this lesson. You can be taught and you can be told why you should do it, but it won&#x27;t click very well until you feel the pain and the satisfaction of solving the problem.<p>---<p>New cynical topic: The <i>real</i> way to become a better developer is to be passionate about development. Everything else will fall into place. I&#x27;m not sure that this can be taught. I&#x27;ve seen a lot of people with the attitude of, &quot;even if I&#x27;m more productive, I still have to work an 8 hr day so what&#x27;s the point?&quot; These developers (which in my experience is the majority of them) won&#x27;t improve because they don&#x27;t want to. But for me, maintainable code is its own reward.
评论 #6960781 未加载
评论 #6960768 未加载
j4peover 11 years ago
This post belongs to Shawn McCool of Big Name (<a href="http://heybigname.com/2013/01/21/how-to-become-a-better-developer-straight-talk" rel="nofollow">http:&#x2F;&#x2F;heybigname.com&#x2F;2013&#x2F;01&#x2F;21&#x2F;how-to-become-a-better-deve...</a>). Though he was credited, I think we should use the original content source when possible.<p>McCool does make some excellent points and his contributions to Laravel and other projects have been very helpful to me.
评论 #6960826 未加载
RyanZAGover 11 years ago
<i>&gt; Learn technologies that are specifically different from those that you already know.</i><p>Careful with this point. A lot of people take this to heart a bit too much and dip their toes into 10+ different languages with only a couple weeks each. This is definitely a big mistake. While it&#x27;s good to learn technologies that are different from what you know, you need to actually learn them, not play with them for a week. This means actually building something substantial and at least a few months of heavy usage. You need to really understand the technology and the reasons for the decisions the technology makes before the learning will be transferable beyond meaningless syntax.
评论 #6961412 未加载
edw519over 11 years ago
Wow, 2226 words and not one of them was &quot;customer&quot; or &quot;user&quot;. (&quot;user groups&quot; doesn&#x27;t count because in this context the user is &quot;me&quot;.)<p>That&#x27;s the whole problem with this; it&#x27;s entire focus was on &quot;me&quot; and not on &quot;others&quot;.<p>I have always believed that the best way to transcend mediocrity is to focus on others, not yourself. All this talk about mentors, technologies, methodologies, communities, opinions, and intelligence is about <i>oneself</i> and while probably will provide <i>some</i> improvement, you won&#x27;t really get to the next level until you find a way to apply it.<p>Find a customer with a difficult problem. Find a way to solve it with whatever it takes. Trust yourself to rise to the occasion. <i>That&#x27;s</i> the best way to become a better developer.
TrainedMonkeyover 11 years ago
TL:DR - learn new things, don&#x27;t be a dick, ask for help, and write code.<p>This all seems like standard stuff, but if you look at it like a framework and evaluate all actions using that methodology, it will help to identify areas in need of improvement.
suprgeekover 11 years ago
All good and straight-forward points. Once you internalize these, you are on the way to being a &quot;code craftsman&quot; - someone who knows their tools well yet is humble enough to ask for help &amp; make himself&#x2F;herself uncomfortable again and again in the quest of more understanding.<p>Personally, the number one technique that helped me grow was to always ask &quot;How &amp; Why is this feature&#x2F;framework&#x2F;Technology important to the end goals of the business&#x2F;product?&quot; As you start being entrusted with more complex systems the amount of &quot;religious&quot; arguments begin to multiply (Java is slow, Ruby is cool, Python is old, Mongo is the hotness, Postgre is for old farts,...) At this point focus on the Business needs ..What is absolutely essential?
grownseedover 11 years ago
These are fairly nice and straight-forward suggestions, but I&#x27;m always surprised that these articles (or conversations like it) never mention ideas not directly related to programming. It might just be me, but in my opinion programming is a specific application of a given mindset, not the other way around. Anything that can improve this mindset can be beneficial, even if it&#x27;s not always directly obvious. I&#x27;ve personally become a considerably better programmer by learning more about cooking, music, different languages, biology, physics, philosophy and many other things. I find it somewhat sad that so many people seem to consider programming an end rather than a means.
评论 #6961202 未加载
NDizzleover 11 years ago
The only thing I disagree with here is &quot;never call anything magic.&quot;<p>What ELSE would you call .par[1] files?!<p>[1]: <a href="http://en.wikipedia.org/wiki/Parchive" rel="nofollow">http:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Parchive</a>
评论 #6960881 未加载
ryan-thompsonover 11 years ago
Be honest with yourself. Have enough hubris to think you can do a better job than the guy that came before you, but tempered with the humility of knowing that he also was a very smart person. Try not to personalize feedback, because it&#x27;s the fertilizer that will help you grow. Learn to ignore half the feedback you get. After years and years, you will see patterns that others don&#x27;t see. Don&#x27;t be afraid to have a respectful argument over implementation. If everyone agrees right off the bat, then you have the wrong team, or nobody cares.
astonteckover 11 years ago
“This is why experienced developers can pick up a new technology in a day, where a beginner could spend months.”<p>The idea that a professional programmer can pick up a language&#x2F;technology in a day or two is unlikely. They can PLAY with a new language or new technology and understand the basic idea behind it but they are not going to know it well enough to write anything serious. The problem is not the architecture or the know-how but the syntax and limitations of the tool. Programming in multiple languages is hard; you must keep on shifting your brain back and forth between the syntaxes and the nuances of the languages. A design pattern is a design pattern no matter what language it is but the syntax of that language complicates things.<p>Last, let’s take a tool such as GIT for example, this thing has a zillion of commands and most of them do the same thing Why? All we need is tool to help with versioning our codes not something that stands in the way. There are a couple of GITUIs but when there is a problem, they send you straight to the command line without any real explanations. Now you realize that you should have learned it using the command line to begin with. A lot of people hear this tool was written by the creator of linux and they just jump on board like sheep when in reality this thing was not written with human being in mind. Why are we complicating things? Programmers are being smart so lets focus our energy to solve real problems instead of boosting our egos with the next tool that does not solve anything.
natasham25over 11 years ago
I&#x27;ve been coding for only a little over 2.5 years, and especially agree with the point on learning technologies that are significantly different from what you&#x27;re comfortable with. I started by learning Java to understand programming fundamentals, which made Ruby pretty easy to learn.<p>I then learned Ruby on Rails, which I thought was a bunch of &quot;magic&quot; until I started learning iOS development. A lot of the Ruby on Rails architecture concepts were very useful in figuring out how to architect my iOS application. Knowing some Java was also super helpful, since Objective-C is a strongly typed language. Learning iOS helped me understand both Rails and iOS better, and why people didn&#x27;t like Rails. I also feel a lot more comfortable picking up JavaScript frameworks, such as Backbone.js and Angular.js, which were harder for me to understand and pick up when I was just doing Rails.<p>Next up, I&#x27;ll be learning a little bit of Android development, hoping to learn the different philosophies for mobile and how to better structure my layouts for different devices, and will probably learn a bunch of other things I can&#x27;t even think of right now!<p>Working with amazing engineers who are open to mentoring me has also been priceless.
poulsbohemianover 11 years ago
Good developers tend to focus on patterns for solving problems beyond a language and beyond a framework. Focus on understanding the patterns in payment systems, GIS systems - whatever interests you - and write a lot of code in that area. Figure out what worked and what didn&#x27;t, improve. Rinse, repeat for about ten years.
dcomartinover 11 years ago
Focus on Principles, Patterns, and Practices. Ask yourself &quot;why&quot; regarding everything. Understand the problems and solution a technology&#x2F;pattern&#x2F;framework&#x2F;library solves rather than blindly using said solution.
VishalRJoshiover 11 years ago
The most important of it all is write a lot of code. Write it for a cause. Write more of newer, faster, cleaner, clever, smarter code. The more you write the better developer you will become.
trenchwarfareover 11 years ago
I just registered to say: both this and the &quot;how I work&quot; posts are awesome. I love the ideas and the friction between them. Where can I find more content like this?
Grue3over 11 years ago
Judging by the notice, the best way to become a better developer is to copy-paste others&#x27; code.
angryasianover 11 years ago
while he touched on learning from more advanced engineers, the number one way I found to be better is to actually read their code. Look at many of the best open source projects and even the source code for the language you&#x27;re using. You&#x27;ll learn a lot.
评论 #6960956 未加载
stephenitisover 11 years ago
humility is attribute #1