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.

Confessions of an Intermediate Programmer

257 pointsby zaidosabout 11 years ago

22 comments

akbar501about 11 years ago
I&#x27;ve found the following really sets apart my programming now vs. earlier in my career:<p>1. I write and rewrite more now. I view the first time the code works as just the first draft (like I would with a paper). Earlier in my career I thought that making it work meant I was done.<p>2. I spend a lot more time thinking about what&#x27;s happening in the code and why. I have found some of my best work to happen after days of thinking about small bits of functionality.<p>3. I get the domain (ie. the big picture) much better. This is insanely valuable and helps me step back.<p>4. I listen more to opposing views. That&#x27;s not to say I don&#x27;t argue my point, but afterwards I spend time to rehash what the other person said when I have no pressure to respond. This guides my thinking a lot as it give me an opportunity to change views&#x2F;positions.<p>5. I&#x27;m increasingly tolerant of other technologies. I use x, but y must be good too b&#x2F;c smart people use it.<p>5.a While I&#x27;m more tolerant, I&#x27;m less distracted. When I was younger, I spent more time switching technologies to learn &quot;new things&quot;. Now I spend more time going deeper on my current stack to learn new things.<p>6. I now think its ok to write code in a &quot;non optimal&quot; way if it makes it easier for the entire team to work with. I don&#x27;t believe in writing to the LCD, however I do believe programming just a little above the team&#x27;s moving average capability is probably better than writing above everyone&#x27;s head (whether by me or someone better than me).
评论 #7338332 未加载
评论 #7339784 未加载
habosaabout 11 years ago
This article did an excellent job verbalizing the incredible feeling of mental potency one gets when learning to program. When you see that first &quot;Hello, World!&quot;, you are hooked. I still get this feeling whenever I learn a new platform. When I learned Android I was amazed that I had made a real-life app run on my phone. When I learned Ruby on Rails I proudly stuck my flag in the surface of the internet and declared myself ruler of my domain (pun intentded). When I learned to program an Arduino I felt my code-laden tendrils inching out into the real world: that light is blinking because I demanded it do so!<p>This is why i&#x27;d like to teach programming to kids. I really don&#x27;t care if they continue with it or ever learn how to do anything useful, I just want to expose everyone to that feeling of power you can get when you&#x27;re behind a keyboard and in front of the right tools. It makes you think you can do something amazing, and everyone should have a chance to feel that.
评论 #7341730 未加载
评论 #7342196 未加载
ameister14about 11 years ago
For me the thing I had to learn was commenting more than anything else; working alone I never saw as much use for it. Then I worked with a guy that commented his code very well and suddenly I saw massive value in it.<p>I&#x27;m definitely still an intermediate programmer, but I think I was always fine admitting that to myself. It was getting over the fear of others reading and modifying my code that took me a while.
评论 #7338922 未加载
评论 #7337997 未加载
评论 #7338049 未加载
评论 #7338153 未加载
评论 #7341387 未加载
评论 #7339845 未加载
gedrapabout 11 years ago
From both my own experience and witnessing others, one major factor that sets apart from beginner and expert is working with legacy code. And by legacy I mean legacy from previous developer, previous team, whatever, not necessarily a decade old code base.<p>Beginners are keen to get rid of all the legacy code. It&#x27;s tightly coupled, it&#x27;s hard to read, hard to maintain, yada yada yada. And then they tend to make a way too optimistic estimate on how long it will take. While it might look like nothing fancy from outside, under the hood it often handles loads of edge cases etc. Been there, almost done that (didn&#x27;t fit in the budget which was way too optimistic already). Eh.<p>Experienced programmers understand that it&#x27;s not perfect, but they just live with that. Surely there are some cases when maintaining the codebase would be waste of money because the previous coder was a disaster, and sooner or later it will have to be scrapped away. But it&#x27;s more tempting to do that than actually needed.
评论 #7339814 未加载
评论 #7341670 未加载
评论 #7341476 未加载
评论 #7338447 未加载
csenseabout 11 years ago
AFAIK this is actually normal -- you learn the basics from tutorials, then the things that you need to make more complicated projects easier seem unnecessary, then you attempt a large project without them, and then you see why they&#x27;re necessary.
评论 #7337691 未加载
luggabout 11 years ago
<a href="http://webcache.googleusercontent.com/search?q=cache:http%3A//www.michaelbromley.co.uk/blog/65/confessions-of-an-intermediate-programmer" rel="nofollow">http:&#x2F;&#x2F;webcache.googleusercontent.com&#x2F;search?q=cache:http%3A...</a>
Bahamutabout 11 years ago
I&#x27;ve actually been down this route when I was a kid experimenting with making programs. I did not understand what was the point of functions - why not just copy&#x2F;paste blocks of logic?<p>It wasn&#x27;t something important to me for a long time since I did other stuff instead, but coming back to programming in an effort to make a career out of it, a lot of that stuff became instantly obvious &amp; I felt foolish for not recognizing it in the first place.
评论 #7338372 未加载
评论 #7337745 未加载
评论 #7339323 未加载
jherikoabout 11 years ago
There are some absolute, rather than relative measures that you can use to gauge your skill. For engineering fields (not just software) the &#x27;toolmaker&#x27; analogy is a good one i find. Until you understand what involved in making the specialist tools you need for your field, and can actually make those tools yourself then you are far from mastery.<p>This is not entirely straightforward though - a bit of a rabbit hole you could say. e.g. should a programmer stop at the compiler? The CPU? The circuitry? Electronic components? The laws of nature? Tools are built with other tools after all and some tools are provided by nature...<p>On the other hand, if you haven&#x27;t made even the first step towards understanding your tools then thats not really a problem to worry about.
gwernabout 11 years ago
I found this so striking in part because of recent events: Mark Karpeles&#x27;s mother defending him as a genius, Karpeles not delegating coding to experienced developers and focusing on being a CEO, the leaked PHP MtGox code...
评论 #7337913 未加载
hippichabout 11 years ago
I find his experience is very fulfilling. In the beginning he had fun times doing stuff which actually delivered some results. Probably gradually became aware of wrong chooses he made and discovered architect side of coding... I kinda feel this is a way to learn it. I think you need this excitement of fast moving to keep engaged - it is hacker part of coding. When you are young it is okey to try something, may be break something and move on.<p>... Or may be I think like that only because I can see myself almost in every single line author posted :)
encodererabout 11 years ago
I agree with the other commenters here. This is part of your development. Yes, it could&#x27;ve possibly be avoided if you had a CS background or worked alongside other developers. But it&#x27;s normal.<p>When I was still in high school I &quot;invented&quot; inheritance in PHP. I put one function per file, and used the include search path. When I discovered OO later I realized what I had done.<p>It happens :)
ritchieaabout 11 years ago
What are the best ways to get better?
评论 #7338111 未加载
评论 #7338393 未加载
评论 #7338016 未加载
评论 #7339756 未加载
评论 #7338007 未加载
评论 #7338376 未加载
评论 #7338002 未加载
erazor42about 11 years ago
Nice article but i was wondering why didn&#x27;t you go to university&#x2F;IT School to learn computer science?<p>--<p>&quot;To me, the object-oriented approach was just a bunch of unnecessary overhead and boilerplate&quot;<p>If you had made real C++, you would&#x27;nt have think of object oriented programming as an overhead. I suggest you to buy a few O&#x27;Reilly books (Probably the best code book )
评论 #7339886 未加载
justplayabout 11 years ago
you can access the article from this link in case if isn&#x27;t opening<p><a href="http://webcache.googleusercontent.com/search?q=cache%3Awww.michaelbromley.co.uk%2Fblog%2F65%2Fconfessions-of-an-intermediate-programmer&amp;oq=cache%3Awww.michaelbromley.co.uk%2Fblog%2F65%2Fconfessions-of-an-intermediate-programmer&amp;aqs=chrome..69i57j69i58.1799j0j4&amp;sourceid=chrome&amp;espv=210&amp;es_sm=91&amp;ie=UTF-8" rel="nofollow">http:&#x2F;&#x2F;webcache.googleusercontent.com&#x2F;search?q=cache%3Awww.m...</a>
chrislomaxabout 11 years ago
Although I generally do not post something that is not constructive to an article, I have to say, I bought the same magazine when I was younger with Borland on and that is what made me want to become a programmer!<p>I was amazed when I read that point. The only difference is that I couldn&#x27;t get anything to build in Borland. I started out in BASIC making my motherboard beep to tunes in a BAT file.
nollidgeabout 11 years ago
Text-only cache: <a href="http://webcache.googleusercontent.com/search?q=cache:k4GBqYSQW8QJ:www.michaelbromley.co.uk/blog/65/confessions-of-an-intermediate-programmer&amp;hl=en&amp;gl=us&amp;strip=1" rel="nofollow">http:&#x2F;&#x2F;webcache.googleusercontent.com&#x2F;search?q=cache:k4GBqYS...</a>
V-2about 11 years ago
This more or less sums up what I think about &quot;duct tape programmers&quot; (as Joel Spolsky calls it).
dsegoabout 11 years ago
Code Complete is really great. I also recommend Clean Code. I started reading it before going to sleep, and it got me so excited I couldn&#x27;t sleep. It was 4 or 5am when I finished it. All I could think about was refactoring all the code I had ever written.
badman_tingabout 11 years ago
You have to stop thinking about what&#x27;s good about your work and focus instead on what sucks about it. Sounds depressing maybe, but that&#x27;s how you get better. You can feel good about yourself, or you can get better.
jonalmeidaabout 11 years ago
The best part of that post was right under the title..<p>&quot;File under ego&quot;
andystantonabout 11 years ago
A smashing read. Entertaining and honest, thank you.
bitwizeabout 11 years ago
I liked the &quot;Fuck Generator&quot;. I&#x27;ve often said that many a programming career began with this:<p><pre><code> 10 PRINT &quot;COCKS&quot; 20 GOTO 10</code></pre>