Hi all,
I need your advice; I'm working in an internal IT department at a non-software company which is, as you can guess, far from ideal. I live + work in the UK.
I am starting to feel very depressed about my situation and am desperate to find a way out. I've
applied to a job at a decent software company which unfortunately I didn't get (though it certainly gave me an idea of what to improve if I were to apply again, so was positive overall.)
I'm working on developing a programming language; it's extremely early days but I have certain convictions about what is important in a language and in the hacker tradition want to make something that fits those convictions.
I, much to my regret, don't have a degree in Computer Science (though I do have an engineering degree) - though I grew up loving programming I, for somewhat complicated reasons, ended up choosing the wrong subject.
As far as I can see the following steps are the way out. I'd be very grateful for any advice/criticism you care to offer about these steps, also with any suggestions you can offer me in finding a happier coding existence:-
+ Work hard on my language project; if I can actually do something with this I will have something very nice to put on my CV. Programming languages, compilers, parsing, etc. are really my passion; they are the one thing I'd like to get into more than anything else.
+ Develop knowledge of algorithms, big O, etc. - the kind of stuff I would have picked up on a computer science course, as well as being the kind of stuff asked at interviews.
+ Get involved with open source - I am especially interested in LLVM as it ties in nicely with my language project.
+ Practice, practice, practice - Practice coding, consciously trying to improve as much as I can.
And the most recent, most radical thought:-
+ Ditch the idea of going to work on someone else's stuff and get going on a Micro ISV. Keep the day job and work all the hours outside of work to put a product together. I'd like to somehow link this to my passion for programming languages, etc. - perhaps that old programmer startup cliche of a development tool of some kind?
Thanks in advance for any advice you can give me, it's really appreciated. Feel free to criticise + tear my ideas apart, by the way! Always happy for (constructive) criticism.
(I am using a different HN login from usual for obvious reasons.)
working in an internal IT department at a non-software company can be a HUGE advantage. Why? Because your "customers" are right there.
Please do not underestimate this as part of your career planning. Sure, we all want to create cool technology, but AFAIC, the single biggest shortcoming for developers that I've ever seen is what I'll call "detachment from users".
You don't have that problem. You have end users right there at your fingertips. Take advantage of it! Learn from them. Practice your systems analysis skills. Find out how to make that missing link, the connection between technology and people, work properly.
I have written significant pieces of technology for software houses, but was actually more frustrated. Why? It took months, sometimes even years before anyone actually used it. And then, they were communicating with someone other than me. The technology was cool, but by not closing that loop with my customers, I always felt that my work (and learning) was incomplete.
By all means, continue your dreams and career plans. But don't waste your current situation by being depressed about it. I can't tell you all the times in my career when I stood head and shoulders above my peers because I had suffered in the trenches like you are now. Except you don't have to suffer. Because now you know to look for opportunities to get a lot better in other ways. They're all around you if you just look.