This is a very complicated thing to answer concisely, but I'll take a stab at it from a product development perspective.
You know you're a good programmer if the things you build "just work." It should be near impossible to find flaws in your solutions. This is actually rare. Most developers I've worked with will declare something "done" well before all of the flaws have been worked out.
Great article. I've struggled with this for my entire career. I get bored after finishing a major project and am left with miscellaneous tasks. But I've found consulting gigs to be elusive and companies seem reluctant to hire contractors. Even startups. So I risk being labeled a job hopper...
Unless you're working for yourself on your own product it's hard to find something you're 100% passionate about. But the funny thing about that is working for yourself is one of the hardest things you can ever strive to do. It is even harder when you get married and have kids because your free time evaporates to zero. Now is the time to go for independence if you can do it
If you want to break into the tech industry, the best thing you can do right now is just start building stuff. Think of a mobile app or a web app that has a simple purpose that you think would be useful, then use the internet to teach yourself how to build it. If you can pull that off then you have a very good shot at a career as a developer. If you can't then you probably either don't have the drive or the aptitude, in which case you'll be spending a few more years figuring out what you want to do.
The new podcast app makes certain workflows impossible--like downloading a single podcast before taking a walk. Now it just says "preparing to download" indefinitely. By the time it shows up on my device, that window of free time to listen to a podcast is gone. Complete and utter crap.
Working on a web crawler that tracks the associations between websites online. Currently working on the front-end which will, at first, simply list websites ordered by how many other websites link to them which is not incredibly interesting in and of itself but my rough plan is to implement some sort of crowd-sourced categorization system to demarcate the data in such a way that people will find useful.
I usually go with programmer/web developer. It doesn't roll off the tongue as easy as hacker but the latter term has negative connotations among the majority of humans.
I like the minimal UI and the tree view is interesting. I would be interested in learning more about the background of this project but there's no "about" link anywhere.
Agreed about the need to sync to the web. If I was to undertake a project like this I would probably do it as a web app (to start) using the bleeding edge HTML 5 local storage stuff so you could use it offline. An inability to sync is a deal breaker for me and (probably) the majority of users on HN.
Scala! ... specifically using Actors for concurrency problems has been a bit of a revelation for me ... and the functional parts if you're not already familiar with FP
... and for practical reasons ... Scala is one of the only academic-ish languages you can actually use in the real world
Fair enough. I just fail to see the distinction between "semicolon insertion" and optional semicolons. Sounds to me like semicolon insertion is just a stupid way to implement an interpreter where semicolons are optional -- something that can be changed without affecting client code
You speak as if your words are law but really it is just your opinion. Modern languages are still being designed this way. For example semicolons are optional in Scala.
I disagree. I consider an interpreter that can figure things out on your behalf to be a more intelligent interpreter. It requires me to type less. The "hard to find bugs" pointed out in the article are a (acceptable imo) trade-off for a terser syntax.
I would love to hear an argument FOR "semicolon insertion" for a change. I only ever hear arguments against it. Personally I would prefer to avoid unnecessary line noise if the interpreter can figure it out for me given the context.
My 2 cents. I am not "experienced" in that I haven't yet achieved my millions, but experience has told me "forcing" myself to continue hacking away when I'm clearly experiencing physical fatigue only leads to more lost productivity down the road.
For example, forcing myself to continue working at my computer when I don't feel like it will lead to eye strain, back pain and anxiety. I will often wake up with a headache after such marathons. I refer to this as burnout. Burnout is very real.
In my early years of programming I could work non-stop because I was doing something new almost every day. And for someone that likes new experiences, it was exciting. But after years of experience, programming in-and-of itself feels more and more like labour.
Don't get me wrong. I still love programming, in general. I've just become more focused on the end-results of programming--of what it makes possible, what it does for people. The act of programming itself, while being something that will always be a significant part of what defines "what I do", is no longer something that can sustain my interest full time.
You know you're a good programmer if the things you build "just work." It should be near impossible to find flaws in your solutions. This is actually rare. Most developers I've worked with will declare something "done" well before all of the flaws have been worked out.