4 ms·
Having regrettably started from the IT side, it's seemingly impossible to make the jump to a software company proper. Nothing I do day-to-day is flexing any men
by QuantumGravy 9y ago
Having regrettably started from the IT side, it's seemingly impossible to make the jump to a software company proper. Nothing I do day-to-day is flexing any mental muscles an interviewer would find sexy. We're like a permanent underclass of undesirables. Without spending time outside work to focus on sharpening basic undergraduate CS knowledge, I know I'm getting objectively rusty at the types of problems I actually do have some remaining passion for.
I fear I'll be hammering out poorly-spec'd features to the beat of another department's Gantt-chart for the rest of my life.
- Cerium 9y agoI have a background in Electrical Engineering, and six months ago I made the jump into my first pure software role. I worked up to it, doing lots of projects on my own time. Just a data point, that if you want to get somewhere you have to start wherever you are.
- codemac 9y agoWould you think that it's not sexyness, but applicability? What values do you bring to the table that a SW company would need? Because I bet you that you could find some if you switched from targeting straight dev roles to something else that is part of a SW org.
- QuantumGravy 9y agoOther than time spent programming on platform X, I'm at a loss as to what values I'd bring. Would I hire myself, based on my job history? Probably not. I'm hardly going to impress anyone with such an attitude! Any suggestions on alternate roles to look for? I'd worry that just because it's a software organization, it doesn't mean I wouldn't be filling their own version of cog in a cost-center.
- jrumbut 9y agoI guess this varies by location, but on average there are so many more openings than there are developers that it shouldn't be at all impossible to find a company willing to take a chance on you, especially if you are willing to either work very hard or take a slightly under market value paycheck (for the very first job). So time spent using X is great, but just saying "I can learn" and giving an example of how you're able to learn is often enough. Then just look at X enough that you know the gist of it, have a small little sample project in your github account, and you'll be good enough that someone will hire you.
- cookiecaper 9y agoYeah, pay grade is really where it gets sticky. If you have basic skills you can find an entry level gig easily... as long as you're willing to take a market-level salary for that role. A lot of people who've spent years building a career in a dead-end sector will have salaries substantially higher than that, and that makes it difficult to jump. These people should focus on improving their credit, cutting expenses, and building up savings so that they can take the salary hit that will get their careers on a better track for the ~20 years until they're eligible for retirement. Alternatively, these people can go in through a social backdoor. Befriend a powerful person at a company you'd like to work at and demonstrate why he needs you. If he has authority to set salaries, he will likely do everything possible to accommodate your higher-than-market salary, even if he can't get you 100% of the way there. But beware: overpaying an employee is the best way for a company to trap him/her. Do everything possible to not become dependent on a rate you can't easily command somewhere else.
- Retric 9y agoI agree that trying to get stuff done after work is often a non starter. But, I find you can do a lot with one weekend a month of real focused effort without burning out or feeling much pressure. Alternatively, just put yourself out there. You don't need to be great, just find a job a little closer to your goal.
- wayn3 9y agomaybe sign up for triplebyte and let them figure it out? nothing to lose
- b0rsuk 9y agoIf you want to train yourself in programming, algorithms and understanding of time complexity, I recommend giving codility.com a go. You are asked to implement solutions for various problems in a programming language of your choice. Basic literature is provided, for example problems which are elegantly solved with stacks come with a pdf about stacks, their implementation in Python and so on. If you go trough the lessons in the order, you will learn many useful programming techniques, and big O notation will no longer sound scary. The website provides a decent in-browser editor, or you can write in your own and paste the solution. You get a few data points for expected output, can write up to 10 of your own primitive tests (although I tend to use asserts). Your solution is automatically evaluated afterwards, because it has a bunch of unit and performance tests written for it. When your program fails on small correctness tests, the website says what was the wrong output and what the correct output should be like. VERY nice. The language used to describe problems is a bit obfuscated and maths-like, but I treat that as extra challenge. You certainly don't have to remember much from your university or high school to get started. It is important to understand and rephrase what they are asking of you.
- iamacynic 9y agoquit your job and use the downtime to retool the way you think. you won't have much success otherwise. no pain, no gain.
- QuantumGravy 9y agoHonestly, the amount of empathy here is encouraging. I'm not in the best position to take all the advice given just yet, but knowing I'm not completely surrounded by sharks is reassuring.
- bpyne 9y agoI sympathize. Early in my career I landed a job in a small software company. My skills improved greatly. Then I made the mistake of taking an IT job. That IT job rolled into another and another. While I stay near the technical top in my IT departments, I find it tough interviewing for software company jobs. The concerns of a software engineer in a software company are just so different from an IT developer’s. I interview for backend engineer jobs. I notice a common theme in the interviews: efficiency. They are very concerned with transactional throughput. They optimize everything from the services layer to the database for trimming every microsecond. At a past interview, the people wanted me to talk about the efficiency and implementation of various data structures: nothing exotic, just garden variety queues, stacks, lists, and hashmaps. They quizzed me on threading issues. One guy got into various indexes in a relational database and then jumped into TCP vs. UDP questions. In my most recent interview, the guy started by asking me the difference between optimistic and pessimistic locking. In my IT job, I never deal with locking issues: they are all abstracted away. Two-thirds of the way through the interview, I remembered and circled back to the question. However, the damage was more than likely done. A person who deals with those issues daily would never forget. But, I know what to work on for the next interview. I understand your predicament. It’s deadening on every level when you’re doing work beneath your capability and interest, but you don’t have the necessary knowledge to get through an interview for more interesting jobs. Hopefully, the observation I made above helps you to target particular areas to successfully navigate an interview.
- cookiecaper 9y agoFind a place that will quiz you on real-world work instead of CS textbooks. There are a lot of them. Companies who base their interviews on CS curricula generally just end up only hiring people who've graduated recently enough to remember it (i.e., their staff ends up being junior because they're selecting for something that's, ironically, an anti-indicator of experience more often than not).
- taway_1212 9y agoThere is tons of middle ground between IT and "proper" software company - for example, banks, while not being tech companies, are nowadays operated via lots of sophisticated software, not unlike say Amazon (and BTW you could argue if Amazon is a retail company and not "proper" software company).