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.
You know you're a good programmer if the things you build "just work."
How do you quantify, "just works?" For a large enough project, perfection, or even just getting pretty close to it, ends up being pretty expensive.
It should be near impossible to find flaws in your solutions.
I had a boss who declared he could find a bug in any page of code, so long as you let him lawyer the specs in great enough detail. Granted, we were working in a pretty complex domain, but as far as I could see, he was always right about that.
As Matt Easton keeps saying: "Context!"
Maybe the company you're working for finds it much more valuable to do lots of iterations so they can tinker with the product and keep refining it. In that case, it might be even better than "perfection" if the things you build mostly work, but that you can respond to change and bugfix requests quickly. (Without introducing regressions.)
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...
Consulting gigs, particularly good ones, seem easier to get for people who have built a network. People want to hire a consultant who is a proven entity, often referred by a first or secondhand contact. Referrals are really key unless you are interested in the lowest hanging fruit of gigs.
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.
I know I have the aptitude... drive would be my problem. I just find it difficult to actually want to work on something.
That's not really abnormal is it?...
As obvious as it sounds, you should go into the field that you are passionate about.
As one old dude said a long time ago: "Nothing can stop the man with the right mental attitude from achieving his goal; nothing on earth can help the man with the wrong mental attitude"
You should read the essay "How to do what you love" by pg [0]. One thing he says is that it's easy to think you love something just because it has lots of prestige around it. I don't know you, so it is possible that you will love technology, but from your comment "Because the tech industry is what I'm passionate about. My lack of drive comes from things like lack of self-confidence and motivation.", it seems to me that you're into it just because it seems cool from the outside. At least for me, it's impossible to be passionate about something and lacking of drive about the same thing.
What is it in the tech industry you are passionate about? Do you like to solve complex problem through coding? Do you think technology can give you more leverage? The tech industry is huge, so my advice for you would be first to find what you really like about technology.
One more thing. Maybe you will find my comment contemptuous, but I promise you that it is not the case. I am just writing what I would like to have read when I was younger.
Hm, well now that I look back at the comment I made at 2am, it seems rather silly to say I'm passionate about the tech industry itself.
The thing is that I've always been fascinated with technology and what it can do. I love working with it and I love making it work. As far as I'm concerned, making something useful in Java or putting together a computer is just as much fun as watching a movie or eating food.
My problem with drive is the whole "do what you're told" thing. I've tried doing things for a friend, but I often get bored in the middle of it because I'm just doing what I'm told, and it's not of any particular value or interest to me. Things that I don't think are just really cool or things that don't benefit me personally are harder to work on... and I don't think I'm the only one with this problem.
But anyways, thanks for the link, it's a good read and definitely something to think about either way.
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
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.
No, it isn't. The new creative suite lets flash developers program actionscript and use the flash APIs to develop their applications. The fact that it is converted to arm as opposed to running on the adobe virtual machine is immaterial to the developers and development process.
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.
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.