Any advice for software developers that are in a rut? Basically, I have been working my first post-college job the last 3.5 years or so, but honestly what I do is pretty basic web app stuff.
I really want to get into a job where I have a lot more responsibility and more interesting work, but I feel like I have shot myself in the foot by working at such an easy (but decent paying) job for so long.
I am very interested in pretty much all programming related topics and study them for fun, but having not built any super awesome software makes me feel inadequate.
Honestly, I should probably just apply to some places and see if I can get a better job, but for some reason I am afraid I will just get turned down.
Honestly, I should probably just apply to some places and see if I can get a better job, but for some reason I am afraid I will just get turned down.
Consider it rejection therapy, then. It turns out it’s OK to be turned down; and you might at least learn something about the interview experience.
Some thoughts:
Try working for a larger organization where there are more diverse internal opportunities.
Try working for a much smaller organization (i.e. a startup or small nonprofit) where you are compelled to work on different aspects of the project.
Try programming-as-sport: programming competitions such as Ludum Dare.
Try a different technical hobby — learn digital electronics, for instance.
Find an open-source project that you already have an incentive to work on. Do you use an open-source text editor or other tools? Are there features you’d like those tools to have?
Ludum Dare is awesome because it’ll get you into a mindset of developing quickly. Probably best to do that after developing properly for a while, though (test driven development and all).
Thanks for responding, this is a good comment and I have considered some of what you suggest.
I do work in a very large organization, and there is a huge amount of technology in use here. The big problem is that technology is a cost center. They will never (without major changes to how the business works) do anything technologically innovative due to this. That is part of my problem with it.
I am looking at several startup jobs in the area that use more interesting technologies. I’m hoping that my incomplete side projects are enough proof that I don’t only know/care about Java.
I use a ton of open source stuff (emacs, rails, countless libs) I just have problems putting myself out there when it comes to contribution.
Rejection therapy is just like ignoring the cause, but leaving the cause itself unattended. So, it does more injury than helps. Man should focus instead of reasoning that “what makes that flinch? what is the reason for it?”, becouse there is still that cause. Just ignoring the flinch (or even rejection programming) is like kicking the big rock again with bare foot.
It can also be that man is on the totally wrong place or applying on a wrong basis, wrong work… etc.
Also my experience is that in this phase—writing CV and cover letter, is more or less “beauty contest” for Jack-of-all-trades which has absolutely nothing to do with personality or skills itself if the listener is not in front of You and you have your programs with You on that moment to show.
So far my best chances to get work as always been 9 of 10 choices a miss and lost energy. Just making a visit was always the quickest way and through mutual friends.
On the other hand, I’m kind of curious about what it would take to get a job like the one you’ve currently got. From your description, it sounds like it shouldn’t be too hard, but there are some slightly worrying cautionary notes in the post (“It isn’t an overnight project; getting basic competence will take months, and true skill takes years”), and it isn’t obvious from the outside what sort of specific skills one would need to demonstrate to impress an employer of this type. (That is, what specific sort of programs one should write at home in order to prepare, as opposed to just going through Project Euler or something.)
Here are a few specific things that either I look for or I have been asked about:
You should know how the web works—be able to explain, for instance, how cookies work, or what happens from the moment you click a link to the moment a web page appears in front of you. Don’t worry about anything below TCP/IP here.
Also, be competent at relational databases—if someone gives you a problem, be able to correctly design a database for it, quickly. Know what normalization is and when to use it and when not to.
Have read a book on design patterns.
Be able to write code on a whiteboard.
If you list a programming language or technology on your resume, be prepared to answer questions about it.
It requires decent knowledge of Java, XSLT, Perl, *nix command line fluency, Web stuff (HTML, CSS, JavaScript), caching, SQL, and RESTful web services. I may not have been entirely fair in calling it “pretty basic web app stuff” it is just paltry compared to what Google and Facebook (for example) do.
HOWEVER, an acquaintance of mine with no programming knowledge, no degree, just a passion for technology got a job as some kind of Visual Basic forms programmer (it is an extremely limited subset of the language). He has since taken some night classes to learn programming more formally and has moved to a normal programmer-type position. This place probably hired 3-4 people to do this.
Any advice for software developers that are in a rut? Basically, I have been working my first post-college job the last 3.5 years or so, but honestly what I do is pretty basic web app stuff.
I really want to get into a job where I have a lot more responsibility and more interesting work, but I feel like I have shot myself in the foot by working at such an easy (but decent paying) job for so long.
I am very interested in pretty much all programming related topics and study them for fun, but having not built any super awesome software makes me feel inadequate.
Honestly, I should probably just apply to some places and see if I can get a better job, but for some reason I am afraid I will just get turned down.
Consider it rejection therapy, then. It turns out it’s OK to be turned down; and you might at least learn something about the interview experience.
Some thoughts:
Try working for a larger organization where there are more diverse internal opportunities.
Try working for a much smaller organization (i.e. a startup or small nonprofit) where you are compelled to work on different aspects of the project.
Try programming-as-sport: programming competitions such as Ludum Dare.
Try a different technical hobby — learn digital electronics, for instance.
Find an open-source project that you already have an incentive to work on. Do you use an open-source text editor or other tools? Are there features you’d like those tools to have?
Ludum Dare is awesome because it’ll get you into a mindset of developing quickly. Probably best to do that after developing properly for a while, though (test driven development and all).
Thanks for responding, this is a good comment and I have considered some of what you suggest.
I do work in a very large organization, and there is a huge amount of technology in use here. The big problem is that technology is a cost center. They will never (without major changes to how the business works) do anything technologically innovative due to this. That is part of my problem with it.
I am looking at several startup jobs in the area that use more interesting technologies. I’m hoping that my incomplete side projects are enough proof that I don’t only know/care about Java.
I use a ton of open source stuff (emacs, rails, countless libs) I just have problems putting myself out there when it comes to contribution.
Complete at least one.
Rejection therapy is just like ignoring the cause, but leaving the cause itself unattended. So, it does more injury than helps. Man should focus instead of reasoning that “what makes that flinch? what is the reason for it?”, becouse there is still that cause. Just ignoring the flinch (or even rejection programming) is like kicking the big rock again with bare foot.
It can also be that man is on the totally wrong place or applying on a wrong basis, wrong work… etc.
Also my experience is that in this phase—writing CV and cover letter, is more or less “beauty contest” for Jack-of-all-trades which has absolutely nothing to do with personality or skills itself if the listener is not in front of You and you have your programs with You on that moment to show. So far my best chances to get work as always been 9 of 10 choices a miss and lost energy. Just making a visit was always the quickest way and through mutual friends.
I think this what most people in IT do.
There are millions of people and organizations who want to have a web page, and you cannot satisfy all of them with one solution.
On the other hand, I’m kind of curious about what it would take to get a job like the one you’ve currently got. From your description, it sounds like it shouldn’t be too hard, but there are some slightly worrying cautionary notes in the post (“It isn’t an overnight project; getting basic competence will take months, and true skill takes years”), and it isn’t obvious from the outside what sort of specific skills one would need to demonstrate to impress an employer of this type. (That is, what specific sort of programs one should write at home in order to prepare, as opposed to just going through Project Euler or something.)
Here are a few specific things that either I look for or I have been asked about:
You should know how the web works—be able to explain, for instance, how cookies work, or what happens from the moment you click a link to the moment a web page appears in front of you. Don’t worry about anything below TCP/IP here.
Also, be competent at relational databases—if someone gives you a problem, be able to correctly design a database for it, quickly. Know what normalization is and when to use it and when not to.
Have read a book on design patterns.
Be able to write code on a whiteboard.
If you list a programming language or technology on your resume, be prepared to answer questions about it.
It requires decent knowledge of Java, XSLT, Perl, *nix command line fluency, Web stuff (HTML, CSS, JavaScript), caching, SQL, and RESTful web services. I may not have been entirely fair in calling it “pretty basic web app stuff” it is just paltry compared to what Google and Facebook (for example) do.
HOWEVER, an acquaintance of mine with no programming knowledge, no degree, just a passion for technology got a job as some kind of Visual Basic forms programmer (it is an extremely limited subset of the language). He has since taken some night classes to learn programming more formally and has moved to a normal programmer-type position. This place probably hired 3-4 people to do this.