Hi, I'm not sure if this is the right community to ask this, but I got yelled at by my mom today for not having a job and I thought it might be worthwhile asking what sort of strategy I should pursue from a community of people with skills I would like to develop. I graduated with a bachelor's degree in Computer Science from a mid-tier state university in the US before the pandemic, but didn't really do anything to develop my portfolio. I had good grades and got two interviews for software engineer positions, but didn't get the job in either case. I didn't really care too much. I was still an enby egg and everything felt off, so I never looked very hard. When the pandemic happened, it made finding a position out of the question because my parents are high risk. Unfortunately, I have had trouble developing a portfolio. I don't know if my education is lacking or I missed something or it is my ADHD or I am just not talented and got fooled into thinking I was okay by grade inflation, but I could never focus for long enough to figure out anyone's project and make a contribution. I did a bit of Cracking the Coding Interview, but got bored a chapter or two in and haven't gone back to it in a while. So I guess specifically my questions are:
- Am I correct in trusting the common advice to contribute to open source projects to build a portfolio?
- If so, how do you figure out how to gauge your skill level so that you pick the right projects to contribute to? 2a. How long does it take you to get up to speed on a new project before you feel comfortable contributing? How long did it take before your first job?
- Am I correct in thinking that any credit I get from employers from having a CS degree is strongly outweighed by 5 years of not having a job and no contributions?
- Should I consider looking into the resources I (and my mom) have heard about offering autistic people help getting into technical fields? I don't think my autism is that bad, and I'm not particularly talented either, so I'd dismissed these for the most part.
- How do I avoid positions that don't either build my skills or lead to a career?
- I am prescribed and taking medicine for ADHD. Is there anything I can do beyond that? My mom has talked about hiring a “life coach,” but it has always sounded like a good way to spend money for no benefit.
- How do I motivate myself when I'm probably mediocre and will be treated like shit if I “succeed?”
- Am I thinking about this all wrong somehow?
- What are the best resources for someone in my position? Despite how it may sound, I am willing to put a fair bit of effort into self-improvement, it has just been spread far too thin because of the ADHD.
Hey, I can only answer for the UK so I'm sure there will be differences.
Open source contributions are largely meaningless when it comes to employment. That's not to say it's bad, and it's good to have some personal projects or commitments that you can talk about in interviews, but it's really, really, not a big deal. Most engineers do not have time or desire to do more work outside of work, and that's okay.
If you do want to work on an open source project, then great! Look for projects that align with your interests, and particularly ones that have a code of conduct document and information on how to contribute. These will be the most welcoming to you.
2a. In my first job I feel like it took me the better part of a year to understand what was going on. I largely blame that on my boss, who to be honest was pretty rubbish at explaining things and enjoyed complexity. These days as a senior dev, I generally need to know very little to start contributing, but that's often because you learn to make small precise changes.
I have worked with people that joined my work in junior positions only after doing code camps of 6-12 weeks. Personally against that, I would still prefer your degree despite the gap. Of course you should expect to be taking an entry level role as well. On that, I would advise you to set your expections appropriately. You may not end up in an ideal job. That said, to grow your career, you don't necessarily need a great graduate plan or a mentoring system etc. One good (more) senior engineer who will take you under their wing will send you a long way in any environment.
I don't know anything specifically about programmes for people with autism, but in the UK it's very typical to see a box when applying to state any special support you may need for an interview. If such a thing exists in the US, I'd suggest you use that when applying to ensure you get a fair interview.
It's really hard to know how to do this. There's big companies with big programmes that are useless, and tiny startups with amazing engineers who will teach you heaps. Likewise some of the big programmes are amazing, and other startups will demand too much of you without giving much back. So my advice would be to focus on the people you'll be working with and ask yourself if you could manage 6 months or a year with them. Try to measure what you're enjoying and not enjoying about a job, and be open about that with a mentor that can help you. On top of this, if you're interested in the field, at a certain point it'll be hard not to build skills at some rate.
I can't speak to the experience of having ADHD, but in terms of work I'd again suggest being as open as you feel comfortable with your colleagues (note, this is maybe not something to stress too much in interviews unless you want to speak to how you handle it and succeed). You can help others to know how to get the most out of you, eg by asking to have a video call over a message.
You will be mediocre. This is true of people that get jobs straight away after university too. It's expected, and fine. Most courses do not prepare you for a real job software engineering. What I found was thst the skills I learnt would come in handy here and there as I got on with my career, but not so much at the start. I like to think you will be motivated by learning, and if not, the large amount of cash you can earn in this career. If you're still living at home, your ability to save money will be huge, particularly in the US. I don't know what you mean about being treated like shit if you succeed I'm afraid, please clarify and I can get back to you.
At most you may be overthinking things a little if I'm honest. There's no harm in starting to apply now. You don't need permission from anyone and you sound qualified for any junior engineering position. Get out there!
Something like roadmap.sh can be great for tracking your progress against a specific skillset. If you want to build technical skill, I would start there, maybe when you feel ready start creating a few projects (simple projects! No big ideas whatsoever) to develop those new skills. You could perhaps also get some inspiration from various conferences talks from technical conferences. I like videos from goto; on YouTube. There's also Uncle Bob's Clean Code talks which are great, though he's a somewhat controversial character these days.
I hope this is all useful. If I can help any more please get back to me 😊
Thank you so much for replying and I'm grateful for your insight. In regards to your first point, it is interesting that it is not completely required to be an active contributor to get your foot in the door. I do think it would help with the substantive issue of being a bit rusty at coding and my confidence (as well as being a good thing to do), but it is good to know that there are differing opinions in industry about that.
I had the same impression as you in regards to the helpfulness of a degree. I had wondered how much I missed out by not going to a flagship state university or a well regarded private school, so knowing that some people view good grades at a mid-tier university as qualifying is helpful. It is also helpful to know that while not ideal, mediocre is at least acceptable in the beginning. I probably have been letting tropes about “genius tech founder” influence my perception of necessary qualifications. Even though intellectually I know that both not everyone is incredibly technically competent and that the trope is usually hype to attract VC funding.
Also, that roadmaps.sh site looks really helpful in that it shows the concrete skills necessary. Thanks!