Ask HN: I'm 24, coding since 14, and I don't know what to do
I'm absolutely lost. I have been coding for so long but I have never had a software development job, I've been self taught and been on this road for so long. Surprisingly I have been extremely active in sports, I'm extroverted, I love being social and coding has been my passion. I can't get a job because the requirements and qualifications is way too demanding even though I am 100% I can handle the work load and delivery whatever it is the companies need.
I did 5 years of PHP, HTML, CSS, Javascript, I studied Java in University, I have done Python, and for the past two years Objective-c/Swift I've built 15 applications.
It is extremely hard in this industry that is changing so fast and it is very competitive.
I really feel like giving up.
76 comments
[ 3.1 ms ] story [ 130 ms ] threadI think it's a good idea to choose a niche, and stick to it. Full-stack devs are awesome, but there's nothing wrong in sticking to a particular competency. Looking at your profile, it seems you're pretty good at writing Swift/Obj-C apps. If that really interests you, why not stick to mobile as a domain? I feel it's easier to keep track of how the ecosystem changes, in one field.
As for jobs. I'm not entirely sure what the problem here is, but I know what it's like to not have the right qualifications. I studied engineering for two years, dropped out because the coursework had zero coding, studied Russian for 6 months and then dropped out again due to campus politics. But I've managed to hold jobs with IBM, Cvent and some media houses simply because I could convince the overlords that the lack of a professional degree didn't stop me from executing what was expected. But it was hard. Have you tried checking out spaces/events where startups converge, and probably pitch your skills to them? A good place to start would be coworking spaces. Establish a relationship with the space's owners/managers, and they'll happily introduce you to teams who need your expertise. Many startups don't care what certificates you've got, so long as you add value. And if there's a startup that does look for a degree - well, you probably don't want to join them anyway.
I hope this helps. Please don't give up - obviously you love writing code, and there's no reason why circumstances should make you give up doing something you love. :)
I would love to stick to mobile apps but majority of companies are looking for "Senior iOS developer" and the funny thing is they list frameworks that literally just surfaced in the tech community, yet these HR reps are asking for seniority and expert levels, on top of that you have things like Superiority in problem solving, x amount of years in agile dev/dev ops principles..etc
This is the overwhelming area, even if I want to do mobile development they ask for things that are senior level!
Your suggestion about establishing a relationship with space owners, and approaching startups is a good idea, I haven't thought about that to be honest.
On an ideal note, try not to go for companies that have HR doing recruitments. It's bound not to work in your favor. Your best bet is to interact directly with product owners because they know what they're looking for, and it's easier to have a direct conversation with them about the best tool/framework for the job. And a lot of startups are liberal - they have "preferred" tools/frameworks, but they're happy with someone coming in with a different option.
Please do try checking out coworking spaces. If there's startup events in your area, try them out too. A lot happens when there's a casual chat over a coffee/beer. I should know, I met my cofounders over a joint.
- consider web/iOS consulting companies: with a targeted skill set they may be better able to properly assess your skills. Pivotal, Thoughtworks, etc.
- consider 'boring' companies like insurance, banks, GE and similar, or pretty much anywhere that isn't explicitly a software company but does hire software developers. 'Software is eating the world' and everywhere needs developers. It might not be the ideal job, but you will learn a ton about how SW development works in an organization (as opposed to solo) and how that looks on the ground. And you will be in a better position to show that you can do this.
- consider smaller non-startup companies where you would wear many hats and you can grow and show your worth quickly. And they're probably more willing to take a flyer on you because they wouldn't be able to afford paying people for all the hats you'll wear.
- when you do land a job, befriend someone in HR and learn as much as you can about the general hiring process. Interview candidates if you can. Get involved in it to learn what candidates do that works and what doesn't.
I have two pieces of advice for you, as someone who has struggled with these very things:
First, don't compare yourself with someone else. You are only competing with yourself in the end. The person you're comparing yourself to very likely could have the same doubts as you.
Second, just start. Don't get stuck in analysis paralysis, and only think things to death. I'm happy to share my experiences with you. My email is in my profile.
I agree
EDIT: there will be lots of smaller companies there that will be more understanding of no-formal-education.
Makes sense ?
couldn't have been that often
>lost almost 100k day trading
A cursory look at the everyday applications that companies get would make you realise how you are far ahead of the curve. I would advice you to not get intimated by job requirements and start applying. If they don't reply, try following up (don't worry you are not intruding). Try reaching out to your network if anyone is up for hiring. Get comfortable doing interviews and meeting people. And don't get discouraged by rejections. Companies, after all, are run by people who have their own biases and idiosyncrasies. They might pick up the wrong impression or you might get rejected for a reason that is far disconnected from your coding ability.
[1]: https://news.ycombinator.com/item?id=11326940
Pick one set of tools to be your current 'major', say Swift perhaps and spend time getting better at Swift than the rest of the stuff you know. Apply for Swift jobs and be confident!
One more thing. Always be prepared to switch your major to a new one (language, platform). If you ask me, Elixir/Phoenix has lots of potential and 2017 might be seeing a lot of job openings for it.
PS: If I had to pick a focus area I'd do AI. Supply and demand are in your favor.
In my experience a software development job is often the easiest way to destroy what you may love about programming. There may be exceptions, but many of the jobs and their limitations cannot compete with coding out of passion. Jobs in the software development industry are not the only way to make use of and grow your programming skills.
Also - coding skills alone are not that hot - they just make you into a replaceable cog. However, if you combine this with domain specialization this could make you into a valuable contributor. And by domain specialization I mean what ever is the core business of a business. Tomato delivery logistics? Insurance policy business rules? Trash truck maintenance database operation? (I'm making this up, but most businesses are run by their own rules and terminology - being familiar how they work gives you the right to claim 'domain knowledge').
I'm 100% sure there is a domain for you to specialize out there. You'll find it if you don't give up. Social skills are probably a really good asset here. Stop talking to HR. Start talking to the upper management directly. Everybody likes to interact with a nice person when they have the time - unless they are lizard people, in which instance they should be avoided in any case.
I almost lost hope on my last job jump when it took me three months and six on-site interviews before I got an offer.
What will help you the most in the search is probably not what you think. I thought have a GitHub and some cool projects and a nice blog would make landing a job easy for me... Annnddd 95% of the companies I talked to didn't care.
What helped enormously was studying the same questions that interviewers are likely to pull from. Once I studied hard on interview Q&A I went from no offers to getting three in the same week.
The interview process is usually borderline hazing and the questions being asked have little or no bearing on the actual job. The job requirements listed are actually just some staff engineers wish list of what he would use if he could rewrite the garbage fire that is the application you'll be working on.
It doesn't help that half the time the manager interviewing you hasn't written a line of code for ten years... or ever in the case that you're interviewing with HR.
My theory is that male dominated fields tend to be steeped in competition, or at least the goal is to appear that way. You don't want your hiring to be "weak" and new guys definitely need to "climb the ladder". This makes interviewing for these positions a complete nightmare.
Just keep up applying and remember the interviews are tough on purpose. HR doesn't look good unless they can bring in an endless stream of top tier applicants. Management doesn't look good if they hire "anyone that walks through the door". The result: companies throw away many, maybe most of their good applicants.
Interesting to hear on what are the sources 'that interviewers are likely to pull from'? And probably some guidelines as well, because interviewers like to be stingy and want to hear _the right_ answers.
Other questions I got were things like "can a static class be extended in language X" and other questions that test your trivia abilities but don't really matter when writing code 99% of the time. Like for js, everyone knows not to use == but most people don't know exactly why.
What I did was read several books on the language semantics for my top 2 languages cover to cover multiple times. The process was painful but I was prepared for nearly anything.
Answer quickly even if you might be wrong. Concise answers are perceived as more correct from what I've experienced.
You mention experience with Java - Maybe going the J2EE route could open some opportunities.
Some may say going down the more traditional enterprise stack is boring but I do wonder if that's where there is more work locally as opposed to work being sent offshore to a low cost dev shop that works with web /php / etc.
Of course I may well be wrong, but it's one perspective.
Most of what we did was automate annoying manual processes, which writing the code for was usually annoying in itself
The industry is crying out for developers, theres no reason why you wouldn't be able to get a job. Yeah the industry is fast moving but businesses aren't. If they choose to use a framework, them its going to be in their legacy code base for a good few years.
Remember,you are not paid to develop, you are paid to make the business money. Would you rather hire a developer who wrote an amazing 200 LoC a day and earned you 10k or the developer who deleted 3 lines, sent a few emails and earned you 100k?
Apply for every interview, don't aim too high - you can get a junior position no problem.
My advice is the same: aim for a junior position first and work your way up from there. If there are no full-time jobs available, try to build a social network, attend to tech meetings in your area, try to find freelance projects and add them to your portfolio. I know, the first steps are hard, but after a while it will suck you in and then you don't have to worry about finding another job.
As annoying as this advice might be to someone who likes his/her current home and doesn't want to move, coming to one of the tech clusters and putting in two years where you specifically focus on growing your network will help open up opportunities, establish a reputation and often help you earn a salary higher than you'd get in your local market.
Shortly thereafter, I rediscovered programming and I've been doing it ever since (20+ years). In hindsight, I think I had just gone through my first bout of burnout. I still find electronics interesting and enjoyable. So burnout may be one aspect of what you're experiencing.
Since you're an extrovert, you have a natural propensity that many people don't have in this industry. That can be a superpower for you. You might excel at giving talks, communicating with other teams, managing groups, and the like. The fact that you enjoy development and have put in the time means that these activities won't be vacuous.
The feelings of exasperation that you have are similar to what many others--novices and veterans alike--are feeling. Things change quickly in this field. Many others have written about how to cope with this. It's a real thing but something that can be mitigated and gotten past.
You might consider taking a step back and recharging. The New Year time frame is an excellent time to do so (generally speaking). Think about a few goals that you may want to focus on this year. If you pick a project, choose one that means something to you. It could be one of your own or someone else's. We live in an amazing time of open source and collaboration.
The main thing is, don't worry. You've got plenty of time ahead of you to pick your path and make things work. The fact that you're reaching out and searching for answers is a great indicator of future success. Just keep moving forward.
1. You can do this and you are not alone! I look good enough on paper that I get a seemingly endless number of job leads. And I still cant make it through the hiring pipelines at seemingly anywhere. I know people way better than me that cant either. The creator of homebrew? Max Howell? Yep, that guy. He couldn't make it through the hiring pipeline at Google. https://news.ycombinator.com/item?id=9695102 It isn't you, remind yourself that it is not you. Just keep going forward. You will get there. You will make it.
2. But is going to hurt. The hiring pipeline in this industry is broken, completely utterly broken. It will not be fun.
Until you make it, it will be rough. It is just the way it is. There wont be any saving grace or magical advice that will make it all better. It will be rough, it is that simple. Most people outside of the right stereotypes and demographics wont make it. If you don't fit the right demographic you will have to work 3x as hard and suffer 3x the stress and anxiety as others. But the good news is it can be done. You can do it.
First step; figure out what your weakness is and begin to work on it. You can pinpoint this by figuring out where in the pipeline you are continually failing.
Then work at getting a job the same way you worked at learning to program. Getting a job is a skill, don't let anyone or yourself convince you that just because you can code a job will happen. They don't just fall into your lap. You must tackle getting a job with the same motivation, and dedication to self-improvement that you have when learning a new framework or programming language.
If you cant get your foot in the door at companies, if you cant get them to respond to you, then your problem is you look crap on paper. Go and find people that look good on paper, look up the thought leaders, the people whose work you see constantly. Then copy what they are doing. Make open source projects, contribute to their projects, write articles. Eventually you will look good and the leads will start flowing in.
Now here is where it gets harder. If you are failing screens, you haven't learned to talk right. Practice learning how to talk about your work and answering questions (and asking them). Start asking after the screens for feedback. You will eventually learn what you are doing wrong and then you can work at getting better at it.
If you are failing the whiteboard challenge phase of hiring, then get good at them. Go to HackerRank and solve solve solve until things get easier. Recognize that they are puzzles, they are not programming. There is no shame you suck at them, you aren't trained as a puzzle solver, you trained as a programmer. But you have to practice the skills they are testing, and they will be testing you to see how fast you can reverse a singly linked list. Recognize it is silly and stupid, but get good at it anyway.
The point is in the EU most of the unis are really just not that up to date when it comes to teaching you the real deal ( minus math and cs basics). And they are inflexible bureaucrats.
Doesn't move as fast as you think. Tons of work doing "boring" work. Read what Scott Hanselman says about "Dark Matter" developers: http://www.hanselman.com/blog/DarkMatterDevelopersTheUnseen9...
Message me and let's talk further. We're always looking for strong SWE applicants. Happy holidays and remember to never give up! <3 for code. 'Tis the season to help others.
If you don't know your Floyd Warshall from your Tarjan from your Manacher then you'll just fumble around thinking you got close unless you have the remarkable gift of being able to derive these from scratch in a whiteboard situation. Also I cannot stress enough how difficult - and entirely pointless - a whiteboarding interview is.
edit: I didn't mean this to come across pessimistic and critical. I just think it's important to serve a dose of reality regarding the standard expected (and hopefully some pointers towards the kind of algorithms theory you should be not only comfortable with but also able to reproduce on a whiteboard under pressure).
The HN guidelines ask you to edit this sort of thing out of your comments: https://news.ycombinator.com/newsguidelines.html. We'd appreciate it if you'd err on the side of civility.
Interviewer: Do you know C?
Candidate: I wrote a tiny bit years ago, but not really.
Interviewer: Please write some C.
Also "data structures, algorithms" aren't the basics. The bullshit whiteboard puzzle crap algorithms stuff is irrelevant to 90% of actual programming. Including at Google.
In general Google does not have a good track record for hiring people with non-standard backgrounds except via acquisitions (where magically they do just fine) or if it's someone with a lot of experience. E.g. at least as of 5 years ago to be a product manager you needed a Computer Science degree. Knew one really good product manager who wouldn't have been hired by Google under those rules but had slipped in under older, more lenient rules. He only had a Computer Engineering degree and MBA.
Hit Ninu up and talk. What harm does it do. It if turns out you need to "bone up" a bit, bow you have a clear path that can get you employment at a later date. Google defers job offers all the time (or so I understand).
Starting to grow my own vegetables aswell so I dont need cash so much anymore.
What helped me: talk to everybody that you are looking for a job. At every party there might be someone who knows someone that needs someone.
Apply to 200 software positions, might be good to start with internships. Every company you can think of, big and small.
Every interview you get, ask the interviewer what they thought of your answer or if there was a better way to solve the problem.
Write down every question you get asked. Google them later to learn the better answers you don't know. After a while you'll know the answer to 90% of the questions most companies ask.
Also sounds like there may be an attitude problem. If you've never had a software development job then how can you be so confident that you can get the job done? That's plain arrogance.
Approach the situation with a growth mindset - you have loads to learn and you can't wait to absorb it all from your peers. This is a lot more encouraging than someone who thinks they know it all.
And if after all this you still can't land a gig, do work for free just to get something on your resume, to get considered at the decent/great places.
You won't get your ideal job tomorrow but through hard work and dedication you can get there in a few years no problem.