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.

What are some work habits of successful programmers?

15 pointsby heathkitabout 10 years ago
I feel like my work style is very ad-hoc. Some days I&#x27;m in the zone and can churn away, and some days it feels like I just bounce between searching docs and checking hacker news.<p>I think I&#x27;d be more productive if I were more methodical in my approach to work. How do you guys organize your day? How do you keep track of what you&#x27;re working on and avoid distraction?

7 comments

freedevbootcampabout 10 years ago
Things I&#x27;ve changed to be a better programmer.<p>1. I used to be up all night long working on my side projects, sometimes till 5am. Then go to work on two hours sleep.<p>Now I go to bed at 9pm and get up at 3am for three hours of very productive coding. Fully focused three hours of coding.<p>2. I would always be looking for new ideas, new tools, new workflows and say yeah Ill do that next week, never happened.<p>Now I have a todo.txt list that I document everything and follow it every morning.<p>I have a todo.txt list, weekly.txt of what I have completed and a blog.txt that is a personal journal of my monthly accomplishments.<p>3. Never work on your personal projects after doing CRUD applications all day.<p>When I get home from work I relax as much as possible before 9pm bedtime. I try to think about my personal projects and what Im going to do next to improve or refactor before moving onto the next feature.
jtlienwisabout 10 years ago
Do a Google search on &quot;spider webs on caffeine&quot;. Over my long career as a programmer, I went from looking at caffeinated beverages as an aid to getting things done, to the discovery that I made far more programming errors under the influence of caffeine. I cut out my addiction to coke and pepsi and watched my productivity soar. Now, a new successful software company near my home town has built a new building, and the newspaper account describes the office spaces that have free access to Monster type drinks etc. I just wonder how this myth of &quot;programming fluids&quot; for programmers got started and why no one has actually studied it.
评论 #9242507 未加载
angersockabout 10 years ago
I don&#x27;t know if I count as a &quot;successful&quot; programmer (I&#x27;d like to think so), but here are things I&#x27;ve started doing in the last few years that have had a tangible increase in my productivity.<p><i>Know yourself</i>. Know your body and your mind and your tics. If I don&#x27;t get 8 hours of sleep, for example, I get irritable and have trouble focusing. I&#x27;ve had arguments with managers and executives about this before, and frankly I&#x27;ll quit before I&#x27;ll commit to working at not my best. Having my ass in the chair at 9 sharp, tired and bleary and cranky, does nobody any good--especially if waiting a mere hour would result in like 4x the productivity. If your bosses can&#x27;t see this, and you can&#x27;t show them numerically that you are producing, you need to leave your job. Speaking of showing progress...<p><i>Make todo lists</i>. Whether in an issue tracker, post-its, notebook, or mad scrawlings on your cube wall, make notes of the next few things you need to get done. Annotate those things with the mid-to-low level deliverables or requirements. This is not just to keep track of where everything is, but also to help you get right back into context when you need to switch gears. Moreover, this also helps you audit what you&#x27;ve been <i>doing</i> the last few months.<p><i>Write sloppy solutions first</i>. Don&#x27;t lose steam fighting optimizations, unless that is the exact goal you&#x27;re trying to accomplish. Welders use tack welds (teeny welds that are fast) to shape up a workpiece before going to do everything--similarly, use the obvious solutions (preferably functional ones if the language, like JS, affords them) and then go back and clean things up in a subsequent pass.<p><i>Accept that you&#x27;ll waste time</i>. I know that some amount of random garbage (chats, twitter, HN, etc.) is useful for helping reset my brain. On bad days, it even gives me a place to vent while I&#x27;m waiting on solving problems and gives me a sense of community. Don&#x27;t begrudge yourself this, and instead focus on learning to recognize when you&#x27;ve gotten that recharge and can go back at things.<p><i>Do the medium-detail design work up front, and write it down</i>. Especially at hackathons or during stressful times or even when just spewing code because you&#x27;re not on the ball, it&#x27;s really easy to code yourself into corners. So, the design work is a guardrail to help nudge you onto the right path. This way you won&#x27;t get into a situation where you have to throw away a lot of work.<p>EDIT:<p>One more thing.<p>The measure of a good engineer isn&#x27;t how awesome they are when they&#x27;re at their best--it&#x27;s what and how consistently they can deliver when they&#x27;re not.
评论 #9241565 未加载
nyrulezabout 10 years ago
Great advice all around.<p>Some advice that may not be obvious:<p>Keep extensive notes about stuff that you refer to repeatedly. This may include code snippets, test examples, shell commandlines, and so on. Over time, a good programmer can accumulate their own library of stuff that helps them execute effectively.<p>Meditate for at least 5 mins. Self explanatory. Productivity is directly proportional to your ability to manage distractions. Meditation is an effective tool.<p>Pace yourself. Just like in a marathon, you keep a steady non peak pace, it can be useful to allow yourself some patience (vs being hurried all day) , take some breaks, and take a few deep breaths here and there in your schedule, to let your mind reduce hyper activity and let it be more centered.<p>Have a good learn list. When you got some spare time, you can refer to it to learn something in your field... Remember knowledge is a key component to productivity.
jasonm23about 10 years ago
# Write tests first.<p>You&#x27;re going to write all sorts of little throw away calculations and trace outs, and breakpoint, so just accept that:<p>1. Test first is like a todo list item, but without the ambiguity<p>2. You&#x27;ll love that you have test coverage when you break something (or more likely just avoided breaking something.)<p>I&#x27;m not going to say anything more about that, TDD can be just as cultish (often of the cargo-cult variety.) as anything. Just think of it as a way to solidify the spec of the next slice of code you need to fry up.<p># Don&#x27;t be afraid of terminals or cli&#x27;s<p>Additionally learn how to use bash&#x2F;zsh (include Readline line editor)<p># Use a deeply programmable editor<p>Maybe it&#x27;s the one which does modal editing (vim) or the other one with elaborate key chords (Emacs) or whatever floats your boat (Sublime?! oh you kids!) but, make sure you can extend it on the fly, to make it take the repetition out of your work.<p>It will grow, it will become yours. Later you&#x27;ll switch to the better one, you&#x27;ll know which one it is when you get there. If you&#x27;re smart you&#x27;ll realise IDEs suck. (and sometimes you have no choice but to use one!)<p># learn deep, then learn broad.<p>Much of what we know about one platform&#x2F;language&#x2F;machine&#x2F;domain is applicable across many others. When you&#x27;re starting out, learn whatever happens to be the main (platform&#x2F;language&#x2F;machine&#x2F;domain) you&#x27;re focussed on.<p>Later pick up experience with different (platform&#x2F;language&#x2F;machine&#x2F;domain)s and you&#x27;ll find many similarities. You&#x27;ll also find many enlightening differences, which will bolster your knowledge of the (platform&#x2F;language&#x2F;machine&#x2F;domain)s you already know.<p>In effect always be learning.<p># drill<p>As much as possible, always exercise your skills. You should try to tackle problems just a little harder than you think you can solve...<p>You always have time to solve it, and once you have, you&#x27;ll be ready to solve something harder.
duncan_bayneabout 10 years ago
org-mode (or, I guess, any suitably feature rich note-taking-and-todo-list-system). Anything that doesn&#x27;t need immediate attention gets a note in an .org file, for follow up later. I have a very limited stack depth when working, and this approach keeps me free to focus on what I&#x27;m trying to achieve. Just one tip - schedule time each day to review your agenda, or stuff you punt to a list will never actually get done :-)
rsunderabout 10 years ago
1. To-Do Lists 2. Scheduled breaks for mandatory distractions to see the outside world. 3. Checklist of what went wrong - way to keep the learnings