13 ms·
Ask HN: Got a CS degree, but I’m unable to be programmer. What can I do?
I recently graduated and have been grinding for interview prep (leetcode and CTCI mostly), but I’m getting no where. Easy problems take me 2-5 hours. I experience PTSD like symptoms from the constant barrage of negative thoughts the difficulty and stress of doing these problems are causing me. I don’t have time to do anything else and no objectively measurable progress is being made. Even if I get a problem right, I gain little to no satisfaction at this point. I completely hate what I’ve gotten myself into.
I put all my eggs in the “being a programmer” basket and it’s clearly not for me. I do have a computer science undergraduate degree which I’m hoping I can use for something. Are there any career paths I can pivot to that are less cognitively demanding than software engineering where this degree would be an asset?
- sputknick 8y agoI got a CS degree 15 years ago and I have never been a salaried developer, never written a line of production code. There are plenty of things that need to be done in this world where you need to understand the fundamentals behind coding, but don't actually write any. I suggest looking into Consulting and Software Project Management.
- cm2012 8y agoGetting in Google et al would be too stressful, but lots of small businesses hire programmers for relatively simple apps. They usually don't have hard technical interview questions. I'd look into a variety of job listings. Downside is salary will be definitely under 100k (probably closer to 50k), but it's still higher than starting from scratch in another field.
- mathattack 8y agoI will start by assuming you didn’t cheat your way through school. Most hiring managers like CS majors because creating an OS or Compiler is hard. So let’s assume you got good enough grades to show that you learned the material. One possibility is you just aren’t wired for the interview process, but could make a competent programmer given the chance. The other is you got the degree. It just aren’t wired for programming in general. In either case there are a lot of near-programming jobs where your CS degree can be valuable. Thing Sales engineering if you are outgoing, QA if not, and technical support if you are in the middle. All 3 allow you to be technical, and can lead to programming jobs if you are so inclined. And all 3 positions are filled with people who wish they had a CS degree.
- csnewb 8y agoIt's been 3 years since I graduated and started working as a full-time software engineer, but I still struggle with leetcode problems. Even easy ones. My day to day work involves gluing together API's and not writing algorithmic code to solve tricky puzzles. Don't think that just because you can't solve leetcode problems you're not meant to be an engineer. And trust me, I feel your pain. I haven't written a binary search tree from scratch in years, so reading through my algorithms book right now is a struggle. I'm also actively interviewing for jobs and it's really frustrating to work 40-50 hours at work then come home and put in another 20-30 hours of leetcoding for interviews. It's really really tough. I'm ready to be downvoted for this, but if you can't solve a problem in 15-20 minutes, just look at the solution, understand it, and memorize it. The more problems you work on the better your pattern recognition will get, and it'll be easier to solve related problems. Unless you're a genius programmer, I seriously doubt most normal people can easily and flawlessly answer these stupid questions within 15 minutes in an interview setting. Also keep in mind that the vast majority of interviewers will tell you that they're looking for a good thought process as opposed to the correct solution, but they're 100% full of shit so don't believe what they say. There are hundreds of engineers who have already memorized 300+ leetcode problems and WILL write correct and bug-free code in an interview setting, and they will get the job no matter how good your "thought process" is. However, there are SOME companies that care about thought process, and those are the ones you have to look for. Unfortunately I haven't found out how to determine which companies actually do that, but typically they're start-ups. This only applies if you're in the Bay Area, however. I can't comment on what it's like outside of California. I feel like nobody in the thread truly read your original post. You asked for alternative career options because you can't solve leetcode problems and that's absolutely ridiculous. You can absolutely get hired as a software engineer, you just have to play the game. Keep leetcoding and you'll eventually crack an interview. It's just a numbers game. Good luck!
- fibonachos 8y agoYour post came at a good time for me. I've been working as a programmer / engineer for the better part of two decades now. I'm self-taught, have plenty of code in production at several (small/medium) companies doing millions a year in business. I have recently started interviewing again, and it's exactly as you state it: 40-50 hours a week working, and another 20 or so on Leetcode. It's exhausting to put in all this work knowing that much of it is unlikely to be needed outside of the interview setting. A couple of the recruiters have even said as much (Literally that the interview prep material is unrelated to the day to day work for the position). Glad to see I'm not alone in this.
- smt88 8y agoSoftware project management?
- itamarst 8y agoLots of companies don't do stupid programming puzzles. Here's a list: https://github.com/poteto/hiring-without-whiteboards https://github.com/poteto/hiring-without-whiteboards Don't listen to people telling you that you shouldn't be a programmer. Doing these sort of puzzles has very little to do with 90% of what programmers do. There are jobs that need these algorithm skills, sure, but they're not the default jobs.
- macspoofing 8y ago>Doing these sort of puzzles has very little to do with 90% of what programmers do. On the other hand, it's not a waste of time for a young person to just go through a few of these a week as they are job hunting. And you really do get better at them as you do more and more. Certain patterns repeat, and the tricky ones usually have nice explanations that you can certainly learn from. They are also FUN if you do them in a stress-free situation outside an interview.
- Tmp1234 8y agoThank you for this resource!
- zunzun 8y agoAt work you will normally have an internet connection, so what are effectively useless "elite code" algorithm puzzles are A) easily looked up, and B) not most of what the work is. Those are not realistic problems, business have better things to do than waste time on those sort of things. Here is a realistic problem that might be encountered at work: "We need output X under these circumstances, but instead got output Y. Track down the problem and estimate time to correct". Another might be, "We have a new business requirement, how long will it take to design and code it - think about it and let me know tomorrow." Businesses are not arcane IQ test puzzles like the sites you are looking at.
- jokh 8y agoThat is true, but in order to get the jobs you described that pay reasonably well you still need to solve algorithmic problems on Leetcode or CTCI. And sometimes knowing different data structures and algorithms do come in handy, so some problems on Leetcode can be considered realistic.
- AnimalMuppet 8y agoNo, you can get there by finding jobs where the interviewers/hiring managers aren't using Leetcode as their filter. (They do exist, even if they're not as common as they should be.)
- jokh 8y agoThat's why I said "pay reasonably well". It seems to me that most places that don't interview and filter candidates by asking algorithmic problems don't pay as well as those that do. That's just been my experience as a student that's interviewed for internships and is going to start interviewing for new grad positions in the fall. Also > (They do exist, even if they're not as common as they should be.) I'm curious why you think interviews _should_ be non-algorithmic. How do you propose interviews be done? How else are you supposed to find if someone can employ critical thinking + has the necessary programming skills? And yes, most interview questions _are_ original and not straight from Leetcode so they do demonstrate critical thinking + programming skills.
- crooked-v 8y agoHow are you with "homework problem" stuff? Some companies will use "you have 24-48 hours to put together a demo matching these criteria" instead of doing technical problems at an interview, with the interview instead talking about the "why" and "how" decisions you made while putting the whatever together. See https://github.com/icopp/tech-demo-1 https://github.com/icopp/tech-demo-1 and https://icopp.github.io/tech-demo-1 https://icopp.github.io/tech-demo-1 for an example of one I've done before.
- Ensorceled 8y agoSome of the best Product Managers I’ve worked with people with Engineering or Comp Sci degrees who had been mediocre devs for one reason or another. That said, is there any type of programming are you good at? What actual work have you done? Have you shipped an iPhone app or launched a basic website? Were your comp sci courses brutally hard and you spent hours working at them and barely eked out a degree? I’m asking because you just may be failing because of anxiety, not “stupidity”.
- toomuchtodo 8y agoHow does one train to be a Product Manager?
- ct520 8y agoPMP cert seems to be a defacto certificate I see thrown around in the field. (besides all the scrum stuff)
- fein 8y agoAt the time of this reply you've been downvoted a bit, and that is ridiculous. No, not everyone requires certification to be a PM, but many places do, and in many cases it helps get past the resume filtering process. So get a PMP cert if you want, or don't and find a company that isn't going to discriminate on the lack of a certification. It costs a bit of sanity and $500 some to pad PMI's coffers, but its basically paying $500 for your resume going to the top of the stack. Sucks, but it is how it is for a large enough number of companies to matter. "Defacto" may be the wrong word, perhaps "ubiquitous" would be more correct, but your point is valid.
- ct520 8y agoGotcha and agreed. My lexicon seems to be regressing rapidly with age :(
- sixdimensional 8y agoPMP is for project management, relevant to product management, but perhaps a particular set of tools within the broader domain of product management.
- lxe 8y agoI feel like the fact that you earned that degree should encourage you to think about what actual factors are limiting your progress. I don't think "being too stupid" is that factor. I mean... you're smart enough to graduate with a CS degree! Are you doing these interview prep just because you enjoy the training, or are you in "cram mode" trying to force yourself to get better? > Even if I get a problem right, I gain little to no satisfaction at this point. In order to make "deliberate practice" like this less stressful, you should establish a baseline of doing some task in a way that makes you enjoy it. Step aside from interview prep, take a few days and focus on anything other than programming, then casually think about what YOU want to create -- for your own personal use/enjoyment -- to satisfy your creativity. Not to "grind" and get better at it -- but simply to tinker and fiddle and read and discover. Once you're programming (or maybe reading, or writing, or painting, or making music etc...) just "for the kicks," you might try to dive deeper into a part that you don't understand well -- if you're not going anywhere, take a step back into the comfort zone, and do what you enjoy for a while, then try something harder again.
- tccloud 8y agoI've been working in tech / IT for over 10 years now. After graduating with a CS degree I found myself questioning whether or not I wanted a job coding. Instead of applying for those types of jobs, I looked for software / application support roles. That could mean you work for a software company providing (customer facing) support to the products they sell or working within the IT Dept of a company supporting a number of users applications (I've done both). I did this for about 4-5 years and gained plenty experience with various technologies. The nature of the jobs will have you talking to people that have various roles in a company, which may give you insight on different jobs / industries outside of tech. During one of my application support jobs I was able to transition into a developer position since the work called for me writing some code anyways. It was interesting to me so I figured why not give it a shot. If you heart is not quite settled on being a software engineer, look into application support. You will learn plenty, still have a good challenge without coding, and might just find yourself coding here and there anyways as part of the job. Hope this helps.
- pryelluw 8y agoI may be able to help you connect with others who may be hiring without silly code puzzles. If you are intersted, shoot me an email at my username at gmail. No bs or strings attached.
- tholinar 8y agoI agree with the other posts here. Just because you can't solve leet code problems does not mean you can't still be an awesome programmer. But you asked for other jobs. If you have a CS degree at some point you studied systems. I suggest looking for a DevOps/SRE position. These are always in high demand. Your coding skills will come in handy. I hope you don't give up on a dream, but there are other options. I wish you the best of luck.
- anothergoogler 8y agoI'd guess that implementing Fizz Buzz or describing a basic database schema is enough to get hired to 50% of programming jobs. That includes quite a few senior positions. Not exaggerating, Fizz Buzz or a similarly trivial problem is the only tech screen more often than you'd expect. Not only that, but the algorithm challenges are less common now. It's been a long time since I interviewed with a company that didn't give you a "take-home" problem. Personally, I disagree with this practice as it selects for people with extra free time, but there's no reason for you to be experiencing PTSD (is the P "Pre"?) about this. There's no shame in talking to a counselor, might help you sort out why you're really so worried.
- shados 8y agoI'd say Fizz Buzz + knowing when to use a map vs an array and you up your chances to 80%
- thewayofthebutt 8y ago> the algorithm challenges are less common now That may be more a result of how your work history rather than shift in the industry norms.
- anothergoogler 8y agoDoubtful, I've observed the trend in how we screen junior candidates too. I hope you're not reading too much into my username, it's not serious.
- davewiner 8y agoAre you a good writer?
- mjfern 8y agoThere are plenty of opportunities outside of coding. Consider technical sales, consulting, software support, technical writing, UX/design, project management, just to name a few. A CS degree is now a foundational degree that can serve as the starting point for many career paths. Don't stress.
- xexers 8y agoI agree. There are lots of tangent careers you can do with a CS degree. Also consider: IT operations, Quality Assurance, technical PM, network infrastructure. Some of these might require a bit more training, but your CS degree is a solid foundation to build from.
- rmoxley 8y agoI'll second this suggestion. It's exactly what came to mind when I read OP's post. I would also add to this list: testing/quality assurance, and information technology. Since you successfully completed a CS degree, you obviously have the capacity to exercise skills in this field. Ask yourself if there are parts of CS (or a related field) that you enjoy more than software development -- and pursue those interests.
- lastofus 8y agoIf you have passable people skills and enjoy a bit of travel, you may consider sales engineering. You basically handle all of the technical things that are over the heads of the normal sales team, both pre and post sales. This will often look like integration type work -- trying to figure out how to make your companies product work in the prospect/customer's environment.
- mikekij 8y agoThis. I know a ton of sales engineers who love the combination of technical discussion (even if theoretical) and human interaction. And it tends to be a profitable career path too!
- vinnieman232 8y agoThis! Sales and solutions englineering is a ton of fun, applies both halves of your brain every day, and builds a great foundation wherever you want to go in your career. I actually went from 5 years as an engineer, to a sales engineer, in order to understand customers better. Couldnt be happier.
- carlmr 8y agoYep, it's invaluable if your sales guy actually knows a little bit about the technology, even if they can't implement much themselves.
- rattray 8y agoI came here to say this. Or even vanilla Account Management for a software company (you probably don't want to be an Account Executive given anxiety). It's a very different role, but also valuable, and having any kind or CS background may put you ahead in many companies.
- SteveMorin 8y agoHappy to chat with you just email me Steve dot Morin @ Tripping dot com. Am a CTO at a Bay Area company happy to give advice.
- ct520 8y agoProject manager, Business Analyst, Sales engineer, devops, high level support role, a role in system integrations, technical writer.. etc etc. I believe CS degree is a good base now and days and doesnt mean you have to go straight into development. Best people I know in the above roles have a programming background. Good luck, don't stress and dont give up. First job was the hardest for me :) Get out there and interview if its important to you. The more interviews you fail the better you will get at them! If you wish to master the silly technical interviews IMO the best way is to throw yourself into the fire.
- wuunderbar 8y agoI would hope that a "Devops Engineer" or similar would be able to breeze through Easy leetcode problems (i.e., string manipulation) without issue.
- ct520 8y agoTrue, I guess I didn’t group together string manipulation as a lee7code problem. Devops people I know are mostly chef and powershell scripts.
- megaman22 8y agoDo you actually enjoy making things with code? Leaving aside the mostly BS algorithmic interview fodder (you're never going to use any of that until the next job search at 99% of places), when was the last time you just wrote some code to do something you wanted to do, or screwed around with a library or a framework for the hell of it? Have you done any real software development work in the past? Most of what I do as a software engineer is not particularly complicated; it's playing with Legos or akin to construction tradework. I've got to have attention to detail, and a mental map of how the piece fits into the whole, but it's not super clever or complicated. And I try my damndest to avoid things that are clever or complex, because they're usually far too easy to get wrong, and create too much work for future-me down the road. A startling percentage of my time is just doing variations on database crud operations and munging data from one source through some transformations and pushing it at some destination.
- mlevental 8y agohow many leetcode problems have you done? are you really not picking up any of the tricks? which language are you writing in?
- alexissantos 8y agoLots of great advice on this thread, but here's a different way of looking at things: If you like programming itself, don't pull the parachute cord on it just yet. There are plenty of companies that aren't tech companies that need programmers -- maybe that's less pressure mentally and from actual demands from the job? Something to think about, at least. Also, consider a secondary skill or interest and mull over what kind of company could benefit from the intersection of that and your programming skills. (That's somewhat inspired by this: https://medium.com/the-mission/make-the-pursuit-of-curiosity-your-metric-for-success-e22ddc4c33c3 https://medium.com/the-mission/make-the-pursuit-of-curiosity...)
- edoceo 8y agoThis. I couldn't/can't pass a programmer interview at BigCo but I'm capable at LoB software that loads of business need. It's mostly script languages, moving data, integration of existing systems. Loads of "un-sexy" problems to solve, decent pay, lower stress, get to be a polyglot, big-fish, small pond.
- hindsightbias 8y agoFirst, congratulations, you have accomplished a lot by getting a CS degree and should feel very proud of that. Now before presuming you can't handle a workload at a company that isn't all testing-mensa-crazy, you might want to look into how you respond to this stress before evaluating the best course of action. As other commenters have said, there are many options, but at the root of it you should understand what/why you feel this stress and it would be best to get professional advice on that. I'm the last person who wants to advocate pharma-everywhere solutions, but I've worked with some extremely talented people who otherwise struggled through life and managed to find the right formula that worked for them.
- keithnz 8y agoSomethings wrong when someone is trying to game the interview system by trying to do programming puzzles rather than thinking that the best way to get a job is to try and write some software. I got into programming because I like creating things, having ideas and making them happen. Algorithms like you find in programming puzzles rarely stand in your way to create things. GoogleFu / BingJitsu tends to solve most problems pretty quick. Now your search skills often depend on what you are aware of to look for I enjoy programming puzzles from time to time, usually advent of code, but I also don't get a huge level of satisfaction from solving those problems so I don't do them all and often just cherry pick the most interesting ones after the event is over. Often the most interesting thing is to see what techniques other people used to solve it. Which is really the key point for a professional software developer :- be aware of techniques and know what kind of problems they can be used for. Often techniques can be applied to problems in ways that are just not obvious. So, first piece of advice, look for jobs that don't do puzzle based interviewing. Smaller companies are good targets, they don't need to do formula based recruiting ( however many do try to copy big players approaches to interviewing ) Ok, so maybe you really don't want to be a dev...but there are other specialist areas, like testing, devops, UI (Ux). But that would greatly depend on what you enjoy. If none of it is of interest, then there is all kinds of tangential roles, recruiters, product management, HR. But may require further study. Just work out what you really like doing
- rb808 8y agoIts not clear if you've actually tried applying for jobs and doing interviews, or just doing interview prep. If you haven't applied for jobs just start doing it. Grad programs would be a first start. I think you'll find its easier than you think. Sure, the big name companies will have a high bar but less well known tech companies and esp corporates really don't expect grads to know that much. If you are getting interviews then bombing them all - then you can start to worry. If you really don't get anywhere you can try looking for QA/test jobs where you usually have to know a bit about software and end up writing scripts and maybe move into dev later with some more practice.
- taormina 8y agoHappy to chat if you want to talk with a relatively recent grad who has done plenty of interviewing on both sides of the table. My email should be in my profile.
- r3nrut 8y agoYou could apply that knowledge as a business analyst, solutions architect, project manager, software developer in test (test automation)... There's definitely options, just depends on what fits for you.
- RickJWagner 8y agoBecome a writer, UX expert (hot ticket), tech writer, project manager, QE tech, etc. Lots of other trails to take, maybe one of them will be a better fit. Good luck.
- denkmoon 8y agoAn undergraduate degree is an indication you can sit down and do complex work without needing someone holding your hand. It is not a life sentence to a particular career (that would be a PhD). There are plenty of jobs you can do with a CS degree that don't involve being a programmer, as others have mentioned. Don't feel you need to work in that field either. A friend I did my BSc Biology with is now a financial advisor with one of the big four banks in Australia. Having any degree is good, having a STEM degree is even better. Also, it sounds like a lot of this is in your head. You should talk about it to a close friend or someone you trust :)
- mkozlows 8y agoDon't get hung up on the problems. 98% of the people I've worked with couldn't, e.g., reverse a linked list to save their life. Many of them were perfectly fine professional programmers all the same. If you have a CS degree, it is almost 100% certain that you are qualified to do programming at a bank or insurance company or whatever at the very least. If you're scared of the intimidating tech companies, then just skip them and go work somewhere that'll be less stressful.
- georgeecollins 8y agoI think many engineers would love to have a scrum master or project manager who at least understands what they are trying to do. Your challenges position you to appreciate the difficulty of engineering at the highest level. Use your demonstrated (in this post) communications skills to help them cut through the bureaucracy and be effective! You have more to offer than you realize!
- pjohri 8y agoThere are many paths your can take - test engineer, can still write some code but don’t have to. you can find out if you would really want to move forward as a coder or not - scrum master roles, where you are managing agile teams - sales engineering, helping sell technical products - solution engineering , helping implement a company’s product, little coding and configuration - training and teaching schools - management and business, start as business analyst, get an mba and run a busines
- mikekchar 8y agoProgramming isn't for everyone. Now, before I answer your question, let me echo what most other people are saying. Unless you were already a good programmer before you started, or you spent your university days holed up in your room coding for fun, the chances are that you will be absolutely crap when you graduate. You have the advantage that you already know it (most people, including my young self, are considerably more deluded). You've got more than 40 years of a career to become uncrap. It's too early to give up. Having said that, my first sentence is still valid. Programming isn't for everyone. If you don't enjoy it and you don't want to do it, you don't have to do it. First, don't constrain yourself with your CS degree. If you don't want to do that kind of work, then don't do it. There is an entire world out there. Yes, you've spent 4 years and a metric tonne of cash, but that's a sunk cost. Do what you want to do. I will have to say that as someone who has mentored a fair number of people in your situation, I can guess your next statement. "But the thing is, I don't know what I want to do. I don't really want to do anything." If I'm wrong, then I'm happy because you can just ignore this next part and get on with your life. If I'm right it's only because it's stupidly common. Here's the thing. If you don't know what you want to do, then don't stress about it. You can be a programmer for a while and suck at it. In fact, you might as well. Just give yourself permission to suck. It's OK. It's just the time you are taking to find out what you really want to do. I mean, you can work at Taco Bell instead if you want and I won't think any less of you. But programming pays more and you did already pay that metric tonne of cash for the degree. Might as well take it out for a spin around the block. But if you are afraid that you can't get a programming job, or if you kind of like the technology sector, but want to do something else, you are in luck. There are lots of jobs. I'll list many, but there are many more if you look. QA -- there are less of these jobs around because it is not as popular an activity as it once was, but you can still find it. Best to look at older, established large software companies. Sales, pre-sales and sales engineering. A friend of mine gave up being a programmer and got into sales. But he sucked as a sales person. Luckily, his manager noted how good he was at explaining the technology to the customers and he was moved into sales engineering. The cool thing about sales is that you can get a job anywhere and get experience. Expect your ass to be fired about a billion times before you get good at it though. Luckily nobody cares if you were fired as a sales person. Support and/or technical (or even non-technical) documentation. Maybe you aren't good with solving logic issues, but you are good at explaining stuff. Then this is a good bet. I have a friend who moved from programming to technical documentation basically because he was forced into it (they were desperate for people who understood the system to write docs). Eventually he grew to love it and is now in super high demand. Project management, etc. It helps to spend a few years as a programmer before you move into this field. It doesn't matter if you are the worst coder on earth before you move. If you write on your CV, "I've been a programmer for the last 3 or 4 years, but I really want to get into project management", you may have to take measures to protect your physical safety as people rush to grab you (programmers, as a rule, do not want to do this job, but their experience is necessary). System administration. This is really a special skill (well, not unlike everything else I've mentioned). It takes a particular mindset to be a good sysadmin. You need to be a self starter and self reliant. However, the job is more about handling the complexity of the systems than handling the complexity of code bases. It's also got a lot more short term stress as opposed to long term stress -- it's better for some kinds of people. These days you can run the gamut of some guy who pulls wires through buildings all day, to guys who administer networks, to operations specialist all the way to dev ops. Sorry if I'm pidgeon-holing some of this stuff -- I don't want to imply that these jobs are equivalent or even similar. It's just that I don't have infinite space to write about it. One last anecdote. I had a friend who got a degree in CS at a bad time. He couldn't get a job to save his life. He ended up working as a janitor at a local high school. Whenever there were problems with the computers, he would wander in and fix them. The school made him their full time sysadmin and eventually he worked his way up to be in charge of the computer labs for the whole school board (after which I lost track of him). Your path in life is not fixed. You can tread any path you wish to tread. I know it is insanely stressful (for some bizarre reason, I tried to be a theoretical physicist at one time in my life -- didn't last long...) As the saying goes, the journey of a thousand miles starts with a single step. But, there is another less well known part of that saying: Which of the steps is the most important? The first? The last? Some innocuous step in the middle? Even if you don't know it, the small things you do in life are just as important as the ones that stick out in your memory. Good luck!
- flocial 8y ago"Easy problems take me 2-5 hours." Are you sure you're not reinventing established theories and algorithms? Those problems are supposed to be hard because they're based on ideas discovered by the most brilliant minds. If you can do them in 2-5 hours with no background you might actually be real good. Depending on what level of familiarity you have with the material, you might be selling yourself really short. Deliberate thinkers (often misunderstood even by themselves as "slow") are often the most reliable because they take the time to understand and think things through. Please take a deep breath and start with a reasonable supposition. If "easy" problems are taking too long for you, maybe there's an easy way to "solve" it (memorizing the patterns and knowing the most likely to be tested algorithms). Like others say in this thread, not only are those problems unrealistic, it's much like test prep for standardized tests that you may have taken getting into college.
- freyr 8y agoRegardless of whether OP is good at programming, it sounds like he might not enjoy it. To OP: you spent a couple years in college and got yourself a CS degree. Congrats. It is not an obligation to spend the rest of your life doing something you dislike. You might try a software job for a year to see how you like it, or maybe it's already time to change direction. Do you already have something else in mind you'd like to do?
- throwaway613834 8y ago>> "Easy problems take me 2-5 hours." > Those problems are supposed to be hard because they're based on ideas discovered by the most brilliant minds. If you can do them in 2-5 hours with no background you might actually be real good. Putting myself in the OP's shoes, this would be really frustrating advice to hear. The OP literally said they already got a CS degree and that these are "easy problems" taking them 2-5 hours. Baselessly calling into question their own assessment of problem difficulty (as if it's likely that they're that clueless about how difficult interview problems are supposed to be after having received a CS degree) while simultaneously suggesting they might actually be brilliant and simply not realizing it is, honestly, just unhelpful advice, if not potentially actively harmful. If you're going to do this, at least ask them to post a question or two so you can independently gauge their assessment first.
- tastyham 8y agoSome thoughts: 1. Talk to a therapist about your stress/anxiety issues. This can totally kill an interview even if you're qualified, and is probably a bigger issue than your perceived lack of skill. Xanax or other anxiety drugs can help a ton for interview days, but talk to a therapist first. 2. Keep trying. It can take a surprisingly long time to land your first job.
- DoofusOfDeath 8y agoI'll second this. I'm not a counselor, but my guess it that your anxiety is coloring your perception and performance of programming tasks. I strongly suggest you make some time with a counselor, and let him/her help you understand the real causes of your anxiety, and find a path towards managing it. This is what they do for a living, and AFAICT most of them are pretty decent at it. My guess is that you'll have a better chance of enjoying programming, and perhaps performing better at it, once you get a handle on the anxiety.
- simondedalus 8y agoIT or cybersecurity both benefit from CS (cybersecurity especially, since that's basically just CS/IT + read the news / some sec feeds + basic risk assessment and management). the good thing about IT for you in particular is that scripting is so important to it that it might sharpen your programming skills enough to incline you back toward software engineering. sysadmin scripting is obviously less theoretically demanding than most software engineering tasks, but you can get the satisfaction of solving real problems (relatively) quickly using code--and knowing basic CS principles will only help, as long as you're open to learning the practical realities of IT, which often strain to breaking the idealistic assumptions many CS people have about how systems work and where/why they fail.
- dsnuh 8y agoThe sales engineer and other suggestions are all good ones. You could also pivot to law school and become an attorney specializing in technology related cases.
- ssss11 8y agoIf it helps, I have a CS degree and about 15 years experience now. That experience started not in programming but in IT support and then system engineer/infrastructure work for corporates, followed by IT management and Project Management roles. These are all achievable with that degree. I also know others who mixed it with some short courses on stats or other things to diversify into data science, marketing, business analysis and other areas.
- a-dub 8y agoBuy some algorithms books. Brush up. In the beginning, if you're stuck on a problem, peek the solution. After a number of them you'll be able to start doing them yourself. You're learning a new skill, it's called the bullshit-google-algo-interview-problem-solving skill. It has little to do with most real problems, and when you do encounter the real problems, you'll talk to people and look up reference material anyway. Just like how the SAT has little to do with predicting academic performance, this silly little game has little to do with predicting real world programming performance. It can be a valuable exercise to be exposed to the material, but by no means is it a pre-req for being able to succeed at sw eng. Plenty of people garner the correct resources, study for this and get fancy jobs where they go on to spew out absolute garbage in code form. It is meaningless. Some companies recognize the folly of this, ask the recruiters.
- mikeomoto 8y agoYou don't have a job yet, so you don't actually know what being a programmer is like. You're stressing out about what you think being a programmer is like, and worse, you're stressing out about what you think how a programmer is hired. Sit back, relax, go talk to someone who actually does the job, and re-evaluate once you're better contextualized.
- abledon 8y agoYeah like I said in another thread, CTCI is for more of a software __engineering__ role. There are lots of really easy software developement jobs where you ain’t doing algorithmic/dataatructures, just chilling with other code monkeys , humming Katy perry tunes and stackoverflow searching 4 hrs a day, the rest is breaks and hn reading
- codeisawesome 8y agoA candidate displaying the attitude shown in this post would not pass the culture fit round if the company needs team players.
- creative1thr 8y agoyou're not going to tell them you're gonna fuck around, first you get the job, THEN you fuck around.
- cryoshon 8y agothe joke is (probably) on you: most people know not to mention these things in a job interview, but expect to enter a team with like-minded individuals upon hiring. employers can't screen for it because there's no paper trail.
- ewiewi 8y ago"Code monkeys" feels pretty derogatory when talking about people just doing the job they are paid for. It's especially unnecessary in a thread like this one where OP is doubting his skills and choices, and looking for help/direction.
- jorgec 8y ago"I recently graduated .." Are you throwing the towel at the first round?. "I gain little to no satisfaction at this point" It is not about personal satisfaction, especially a fast satisfaction but to work hard and achieve a specific goal. Which goal?. your goal. It was your call to pick this career and you achieve it, then, go ahead and end the fight (or die trying). btw, welcome to the world of the adults!.
- gooeykabuki 8y agoYou can put your CS degree to great use in the technology field without being a programmer. The two that come to mind are: 1. Product Manager 2. Sales Engineer sometimes called Solutions Engineer.
- AlexCoventry 8y ago> I experience PTSD like symptoms from the constant barrage of negative thoughts the difficulty and stress of doing these problems are causing me. Find a good tutor who understands this issue and knows how to help. I've helped multiple students level up in math by getting past this kind of anxiety. The book Misteaks... and how to find them before the teacher does is about calculus, but hopefully it'll be obvious how to generalize it to your situation.
- Ancalagon 8y agoDont worry about the puzzles, a lot of companies dont use them for interviews. Interviewing is (mostly) a numbers game, so while you might not get a Big 4 position (which frankly might be over rated anyways), just keep going, keep interviewing. I'd make notes on what I missed after an interview, studied them, and pushed to do better on the next one.
- fdr 8y agoIt sounds to me like you might have more of a stress issue than anything else. It is hard for me to imagine someone getting a CS degree but also failing to be able to practice and get better at interview problems on basis of intellect. Don't make any rash decisions. Practice with an answer key and fix mistakes in solving mundane problems rapidly. Repeat. Struggle is overrated compared to repetition and quick correction.
- ta1234567890 8y agoAlso, two recommendations to help combat the anxiety/stress: 1) try some form of meditation (you can start with an app like HeadSpace), 2) get the book The Charisma Myth by Olivia Fox Cabane and practice the exercises there - they'll help you a lot with building your confidence and reducing anxiety. Good luck! Wish you the best.
- dragon96 8y ago> Struggle is overrated compared to repetition and quick correction. Just to offer a differing view, I would posit the exact opposite: struggle is underrated compared to repetition and quick correction. The latter is prone to blind memorization, and in my experience, many CS interview questions have a core idea or central motif that aren't apparent until after a long thought. I don't think that either of struggle or rapid repetition are "wrong", but rather, everyone should experiment with both styles and find some middle ground between the two.
- y4mi 8y ago> central motif that aren't apparent until after a long thought. and yet its impossible to figure out a central / repeating motif if you haven't actually done a lot of the same kind of questions. sitting down and thinking things through is generally the final phase, in which you're improving the most. In order to get there, a varying degree of repetition is necessary.
- codezero 8y agoDo you suffer from ADHD? (Don’t tell me) - if so, you can often ask for more time on challenges/tests or other accommodations. Don’t be ashamed of doing so. Also, don’t go it alone. Get a mentor, attend meetups, find peers to practice with.
- danieltillett 8y agoHow did you manage to get through a CS degree?
- karmelapple 8y agoSystems Engineering. Work in the world of avionics and help figure out what is needed for airplane manufacturers, pilots, or the manufacturers of the hardware and software for the many boxes that make modern air travel safe and reliable. It involves writing English and logic and attention to detail, but it does not require coding. It helps to know the broad ideas behind coding, but isn’t necessary to write algorithms or otherwise solve problems in code. I would strongly encourage this career path. Look to companies like Boeing, Garmin, United Technologies, and many more. I will avoid asking other questions about your current predicament since many other people are asking you insightful questions. But if you truly don’t want to code, seriously consider systems engineering.
- bendbro 8y ago> I experience PTSD like symptoms from the constant barrage of negative thoughts the difficulty and stress of doing these problems are causing me This happens to me too, especially when it comes to programming soft skills. Making code work per requirements is easy. Making it future proof is hard. So make the thing work per the requirements and only then worry about debating best practices, OOP design, and the various other soft skills. For most of these soft skills debates, there will be no objective truth. And when it comes time to deal with a hiring, promotion, or firing decision, do you think your manager cares whether your code is functional or object oriented? No, and he probably wouldn't recognize the difference, even if he had the time to evaluate your code. He's only looking at two things: 1) Are your projects delivered on time and in a working manner? 2) Do your peers complain about you? All the hard stuff is only indirectly related, and is usually the realm of a senior engineer. Senior engineers aren't respected because they are familiar with some secret objective truth, they just have experience collected artistry that builds whatever seems to be good code. As a junior, you just need to do your best to internalize what they say, and paint a better picture next time.
- crb002 8y agoGet hired someplace for $50k as a junior that doesn't whiteboard. Apply again as a senior for $100k+ in a few years. Long game.
- tr33house 8y agoWhy don't you think being a programmer is for you?
- sam0x17 8y agoIf you go into government / research (like I did at the start of my career), they only judge you based on your interview and education (NO whiteboard questions, easiest interview you've ever had), though the salary will be 30% less than industry. The U.S. National Labs are a superb work environment. If you manage to get an entry-level job somewhere like that, they will often pay for you to then get a PhD/MS/etc.
- Latteland 8y agoGet a therapist to deal with the anxiety. There are plenty of nondev jobs for things where you use your tech background with no programming like program manager (tech planning for a project), project manager (organize the project), esp in big companies. But I would suggest a therapist. Probably grad school to get more experience is not warranted until you know if you want to stay w cs, but something where you can get more confidence like an internship.
- spyckie2 8y agoMy friend graduated from CS in Berkeley, but it was apparent when working with him that he was not really cut out for being a programmer. I suggested him to go for a PM interview with a large SV company and he got it, and now is doing really well. His other skills - communication, organization, strategy, research, and persistence, just work really well in the role he is in currently. CS is a particular kind of smart that not everyone is. And you don't have to be smart in that way in order to be successful. The CS degree is really valuable regardless of how difficult or frustrating you feel about doing CS. It's objectively one of the most valuable and versatile degrees out there. Non tech roles in the space (PM, design, BD, tech sales are all strong industries) are all very good roles that would love to see a CS degree. I personally think of CS as "paying your dues". You suffer a bit and feel bad about yourself, but you've become an objectively more valuable person because of it, simply because you can program.
- q845712 8y agoLike many on this thread I think it's entirely possible you're not giving yourself enough credit. I've been working as a software engineer at companies that don't ask riddles for about 8 years, and I've been on both sides of the technical interview many times. As the interview-ee, there's exactly one interview I actually left feeling like I'd nailed it, but several others from which I received offers, some of which turned into perfectly fine jobs. As the interview-er, I've learned that I'm looking for a multitude of factors, of which technical proficiency isn't even the most important. In other words, while there is a technical bar to pass, it's usually lower than the interviewee thinks it is. I doubt we live in the same metro area, and even if we do my current employer is not hiring. I'd be happy to run a fake, no pressure ~20-30 minute phone-screen with you, and then offer feedback. jmkimmel at gmail
- topmonk 8y agoThis may be a little out of the box, but have you considered teaching English? As long as you have a college degree (in any field) and are a native speaker, you could work as an English teacher in Japan, Taiwan, South Korea, etc. pretty easily.
- sav_chris 8y agoI'm not sure I have all the answers you need, but I do have some suggestions. I've worked as a programmer for 6 years now in a number of different roles and found that the experience can be quite different in different places. Not all programming roles are the same. Some roles will be quite gast paced and stressful while others will not. Also don't necessarily get discouraged if you have a bad experience in one place. My first programming job didn't work out and the manager told me I wasn't suitable for programming. However my next employer was very happy with my work (and the pay was better too). If you are going to stick with development find a niche that suits you. For example, don't ignore legacy technology. Many companies still have legacy code bases written in Delphi and cobol. There aren't as many developers on the market for these roles and it can be less competitive. Also consider suplimenting your CS degree with other skills. Or consider roles that are not purely programming roles. On the other hand if you want to leave programming there are still options for you. There's more to computer science than programing. There are tech support roles, QA testing, penetration testing, DBA for example.
- madrox 8y agoThere are always project management and product/program management roles. Having a CS background can be really advantageous without all the coding. However, it sounds like you may be dealing with some mental health issues if you’re dealing with PTSD-like stress trying to do programming challenges. Please consider finding counseling at some point on your journey as this could be affecting more than just your enjoyment of programming
- mettamage 8y agoLet me show you my process, we have some similarities which may be useful to you. I hope it helps. I also recently graduated (master CS). But I am having strong second guesses whether CS is the right career for me. The only reason it would be the right career for me is because I love thinking in steps, which is what programming really is (procedural programming anyway). I also love debuggers (more steps!) and am full of wonder when my little step by step world gets shaken up by concurrent programming. However, I don't care that much about creating things. I created a website here and there and one or two small web apps but that's it. I don't care about the mechanics of programming (other than it being step by step). I don't care about learning new semantics, or frameworks. I don't care about MVC. And I hate it how programming changes my personality. If I program 8 hours per day, I only care about truth and don't understand humor. Contrast that when I party all week long (did that when I was younger) and truth is still quite cool and I understand humor and can bring the laughs to other people :D Because of all of this I really am on the fence whether I should become a programmer, I could, but should I? In order to find this out I am on a month long journey. The journey is slowly but surely beginning to complete. In this journey I decided that in order to formulate the best career plan I can possibly have I need information from three sources: 1. I need to read the profiles of all my LinkedIn connections. My LinkedIn connections show all kinds of profiles and more or less show how they got to where they are now. To me it showed what's feasible, and I'm a bit lucky that most of my LinkedIn connections are 2 years further than I am (I studied more degrees). 2. Read all interesting stories on Indie Hackers. I read 39 interviews that I believed to be really valuable. 3. Do the career guide on 80000hours.org. This career guide made me realize a couple of things. I now have a list of 46 jobs. Half of them are in things that I feel are pretty obvious choices for me. The other half are more creative (I even have deadbeat in there as the most creative 'job'). I intend to write a blog post on mettamage.com about my whole journey, but for now I'll just leave you with the 46 jobs that I found that might interest me and also the 11 or 12 (lost count) constraints that I believe to be important for getting a job. I hope that my process (scouring LinkedIn connections, Indie Hackers and 80000hours.org) will be helpful. The jobs happen to be ranked on what I now currently think is most suitable to me (except for sales engineer, just added it recently). I do think I still need to inject a little dose of realism into my thinking, but I hope it helps. Also, options are definitely out (e.g. blackhat hacker) but evaluating them may show what you find important. == JOB TITLES == 1. Playable post writer 2. Bar/Hotel in Thailand (project already underway) 3. Writer 4. Music Producer 5. Gamification expert 6. Negotiation coach 7. Writing children's books 8. Buyer and seller (ebay) 9. Caring for kids (husband) 10. Freelance HW 11. Tech Freelancer 12. Hacker (blackhat) 13. Dating Coach 14. Bootcamp Instructor 15. Work for a green tea company 16. PhD Student (psychology or computer science) 17. Pentester 18. Virtual Assistant 19. Trader (stocks) 20. Trying to be like Casanova / James Bond (seducing people while influencing government officials) 21. Deadbeat 22. Real Estate Agent 23. Workshop Instructor 24. Serious game designer 25. Behavioral Informatics Dev 26. Entrepreneur (laadpalen) 27. Something with finance 28. Front-end Web Dev 29. Teacher (as employee) 30. Computers & old people 31. Entrepreneur 32. Full-stack Web Dev 33. Data Scientist 34. Marketing 35. SEO Specialist 36. UX Designer 37. Sales 38. Consultant (tech) 39. Tutor 40. Growth Hacker 41. Machinist (employee) 42. Bartender (employee) 43. Cleaner (employee) 44. Bus driver (employee) The following 2 are not rated 45. Rhetoric (blogging) 46. Sales engineering == FACTORS I FIND IMPORTANT == Flexibility - time (e.g. 4 days per week) Flexibility - amount of work (e.g. not everything planned has to be done on the same day per se) Flexibility (travel/remote) High Autonomy (freedom in what you do) Pay Meaningfulness (e.g. meaningful for yourself or society) Ability to learn new Skills Quality of training Sleep (I have insomnia issues, so I need to know how bad sleep issues will be) Perceived fun Social capital (connections are everything) Amazing colleagues Cognitively Challenging Emotionally Challenging (this is a negative for me) Shapes you into an interesting personality (doing sales would make me more chatty, if I only program I become a humorless person who only cares about scientific-truth, not so fun at cocktail parties) Risk (high-risk, high reward) == FUTURE STEPS == My goal is to find out more about income opportunities of the more risky things I have. Most if not all of my future steps involve talking to people. (1) I think I should have a conversation with Nicky Case how I could leverage playable posts into a career. At the very least I could work with him on something. (2) I think I should email Bart Hufen about becoming a gamification expert. And also ask him how to deal with associated risk. (3) I should find out if negotiation coach is actually a thing and do more research on it. (4) I should find a pentester and invite him/her for coffee. I suppose Guillaume is a good person to ask! (5) I need to find a couple of people who are able to tell me about the pro's and cons of freelancing and to what extent a normal job will help. (6) Look more into becoming a virtual assistant. (7) I think I should research more into becoming a serious game designer/developer. (8) I should look for role models / people who I feel are like me. (9) I want to know more about growth hacking. (10 optional) Find out if your love/hate for CS is justified by talking to people like me. == THINGS I WANT IN MY FUTURE JOB == 1. Thinking in steps or in processes, sans the frustration 2. Immersive-like experiences (e.g. storytelling) 3. Highly challenging and seeminlgy improbable to even impossible projects 4. A small bit of applied math/arithmetic (e.g. what I experience with professional poker) 5. A touch of playfulness 6. A sense of altruism
- unrealchild 8y agoA lot of great advice in these responses, advice applicable to anyone feeling stressed at performing the duties (perceived or otherwise) of their role/vocation. I echo those who emphasize taking steps to avoid stressing out, and also those who advise considering other roles where your degree could come in handy. Also, roles that have nothing to do with tech. Something excites you; take a swing at it.
- sdrothrock 8y ago> I experience PTSD like symptoms from the constant barrage of negative thoughts the difficulty and stress of doing these problems are causing me. There's a book called How to Keep People From Pushing Your Buttons by Albert Ellis (https://www.amazon.com/dp/B01DRXBJS8 https://www.amazon.com/dp/B01DRXBJS8), who pioneered an early form of CBT (cognitive behavior therapy). I would strongly recommend it as thoughtful reading material with the purpose of getting out of this negative loop so that programming isn't so stressful.
- songzme 8y agoYou are not alone. As the founder of garage script I've come across a few students who got a CS degree and couldn't find a job. The problem might not actually be your ability to solve algorithm, but rather your inability to communicate. For the students who came to me with similar situations, I had them lead coding sessions at our local library to help them get more comfortable with talking to strangers and they now all have a full time job. From my work experience as a tech lead, I've hired many people who didnt do well with algorithm questions but they were able to listen to my suggestions and get to an answer. Maybe start a Meetup group and work through problems with other people?
- mabynogy 8y agoIt's not programming. It's the stress to pass tests. Stop passing tests because you suck at them, they hurt you and they are not even your problem (it's the recruiter problem). If you really like programming, you should continue.
- gojomo 8y agoI'd echo the other answers that anxiety may be the real factor here – specifically some sort of performance/evaluation anxiety. So if you face that head-on – talking to a therapist, reading about anti-anxiety strategies, etc – you may find that you are able to perform as a programmer. And even if programming itself isn't your best role – either because it triggers performance anxiety, or just doesn't match what you enjoy doing – addressing the sort of anxious-thoughts-under-pressure you're having will help in any other challenging interview/job role you find. There are lots of roles in software that aren't constant intense programming, but require some familiarity with software lingo, tradeoffs, processes, etc and may involve small sessions of less-challenging programming. (These can involve various kinds of integration or demo work, project-management, "sales engineering", marketing, and so forth.) And you wouldn't need to "knock-it-out-of-the-park" on interview-style questions to qualify for such jobs – just show some ability to engage and improve. But you may also have built things up in your mind as being worse than they are, leading to a self-reinforcing cycle of imagined doom. Do some anti-anxiety research/coping practices. Maybe try to go into some low-value interviews even if you're scared – places you're not keenly interested in – as practice. You might find it's not as bad as you think, or that after a few it's no longer as scary. Consider other entry-level roles at software-type companies that let you learn about the industry and profession without needing to feel fully competent on day one. After you've interacted in a real environment you may find it easy to slide over into some useful closer-to-programming role, without the stressed-out ("PTSD") brain freezes you're facing now.
- crobertsbmw 8y agoYou might try sales. There are a lot of sales jobs where they value the salesman being able to understand and explain technical aspects of the product. My uncle started as an engineer and moved to sales and he absolutely loves it.
- hasahmed 8y agoYeah really don't sell yourself short. And you always get better with time because patterns repeat. If people do those problems faster it's just because they are using prior knowledge from problems they have solved before. That being said if you don't enjoy programming I believe that there are a lot of other options out there. I think that there is quite a demand for people who are technical but have soft skills as well. Perhaps in the business realm. Think someone who can be a middle man between customers wants and developers.
- flaque 8y ago> Easy problems take me 2-5 hours. I experience PTSD like symptoms This is not ridiculously uncommon. I had this problem for awhile too. The only thing that got me through it was applying to every possible place and getting more practice. I know that may not be what you want to hear, I know you've probably already practiced a ton and I know you've probably already applied to a ton of places. But seriously, practice. Apply everywhere without an expectation of a job immediately. Time yourself and if you can't figure out the problems, it's okay to look. It's fine. At a certain point you'll have just seen the problems before or a variant of them and you'll be able to do them.
- goldenkey 8y agoYou might try to become a recruiter / head hunter. Good ones have CS / tech knowledge which helps them place and filter candidates properly. Helps facilitate a cathartic relationship with the companies that are hiring. Good luck with your career, whatever you decide!
- johnsonjo 8y agoMy advice is don’t give up quite yet. I had a drum line coach who was also a biology professor. One day he told us that when we practice we needed to have proper technique and take the practice deliberately. He said otherwise we would be doing ourselves a disservice, and that we would effectively be undoing part of what we’ve done. He then told a story of one of his biology students. He said that one of his students came to him after failing a test, and said he studied for many hours before the test and was asking for his score to be improved. My drum line coach then said he told the student that he wouldn’t raise the grade, but instead in my own opinion decided to teach him a valuable life lesson. He said to the student you need to be studying smart and not hard. He then told our drum line that we need to do the same with our practices. I bring up this story not to say you’re not working hard. I believe you have met that criteria. Maybe though you are not doing things as efficiently as you would be able to if you had the right resources. Also, with all that said in my opinion a lot of day to day software engineering is different than competitive programming like interview questions. I wouldn’t be too stressed not being good at the interview questions, because it’s so different. I also wouldn't be stressed that you don't enjoy it. Although since it’s a good idea to have a job you may need to meet these somewhat odd demands of getting a software job. I took a class that was primarily focused on solving problems like these, and I had at least one classmate that was discouraged because he felt not much progress was being made solving random problems. Well if you solve enough of these problems you soon seem to find out that a lot of them are very similar. A lot of them fit into just a few relatively small categories. That’s why it may be easier to see the categories as well as solve random problems. That way you can be picky about which problems you solve and choose to strengthen your skills on problems you have less experience with (another principle I learned from a music teacher). There is one book that does this really well. It is “The Competitive Programmer’s Handbook” [0]. The only gripe I have with this book is I wish it had example problems to go along with the theoretical aspect of each of the categories. Also I would recommend the "Cracking the Coding Interview" HackerRank challenges [1] which are written and compiled by Gayle Laakmann McDowell (who is the author of the book with the same title as the course.) I recommend watching the videos that go along with each section. Also just a tip for interviews it’s very good to think out loud and converse with your interviewer. Also remember they are not just testing your ability to answer problems, but also testing how well you would fit within their existing teams (personality wise and such), and they’re testing how you cope with failure. So try and destress before an interview, and try being humble and kind (in my opinion that’s a good thing for teams of software developers to do). Hopefully you find this helpful, and take this as you will. You honestly have the best knowledge of where you are at in handling this. [0]: https://cses.fi/book/index.html https://cses.fi/book/index.html [1]: https://www.hackerrank.com/domains/tutorials/cracking-the-coding-interview https://www.hackerrank.com/domains/tutorials/cracking-the-co...
- krob 8y agoOp is currently stressed and also possibly burned out. I suspect he lost his enthusiasm for the field, if he's anything like myself it's only temporary and he just needs a break. If he's given assessments and he thinks their simple and he completes them, the fact is he stated himself he completed them. I suspect his enthusiasm is missing from this choice right now because he needs to explorer his industry more.
- codycraven 8y agoSeeing as you were able to graduate I'd imagine your issue is not performance/anxiety related but rather efficient application of learned knowledge. This resolves with hours upon hours of gruelling development practice. I'm 21 years into self-taught programming and can testify that it's the constant struggle that develops your chops (fresh grads are often terrible developers). Now if that doesn't sound like a path you want to go down but you still like programming (even if you don't want to be the one doing the dev work) I'd recommend picking up an MBA or some other administration based masters degree. Seeing as you have respect for the difficulty of programming and have the theoretical knowledge you could be a really fantastic manager and potentially at some point an executive over developers.
- dragon96 8y agoHappy to do some leetcode problems together if you'd like. I have a couple weeks off, and I'd be happy to tutor or give you some feedback (for free). See my profile for email.
- whack 8y ago> I experience PTSD like symptoms from the constant barrage of negative thoughts the difficulty and stress of doing these problems are causing me. A lot of the other posters have given some great advice from a technical perspective. I'd suggest taking some time to evaluate and improve your mental health as well. If you're putting yourself under so much pressure, that pressure alone will hold you back to a great extent. First off, just relax. Take a little time off to reset your psyche, overcome your burnout, and rediscover your confidence/interest. It's amazing what taking a week off can do. Take up some activities that have been shown to help with stress relief. Meditation. Exercise. Long walks. Digital disconnects. Healthy sleep cycle. Read this book: The Inner Game of Tennis. It's a short read, but it will transform the way you approach high-pressure situations. You mentioned PTSD - do you actually have PTSD, anxiety, or other similar mental health problems? If so, talk to a counselor or find some way to address those underlying issues. You have a long career window ahead of you, so don't burn yourself out at this point. Job prospects are great for CS majors, and you seem like a guy who's very motivated and hard working. Spend a bit of time taking care of yourself, and I'm sure you'll be fine in the long haul.
- johnsonjo 8y agoThis is really great advice. Being too stressed during an interview is not good for looking like a good job candidate. I’ll have to check out that book too, because I personally get a little too stressed public speaking, so thanks for the recommendation. That’s one of the great things about questions like these is they can be very relatable and you get such great advice from all walks of life.
- whack 8y agoThanks. Since you mentioned public speaking, I would also strongly recommend Toastmasters as a way to improve your public speaking and overcoming-anxiety skills. I've personally tried it, and it really helped.
- johnsonjo 8y agoThanks, I’ll have to check that out too. Just bought The Inner Game of Tennis and read up past the introduction. Seems like it will be very insightful.
- forgotcreds 8y agoNot all places hire using these types of interview techniques: https://github.com/poteto/hiring-without-whiteboards https://github.com/poteto/hiring-without-whiteboards Don't give up so soon. You can do this.
- chickenfries 8y agoI don't know if this will be helpful, but when I was in college, I failed a very basic CS math class because I was very anxious, comparing myself to others, feeling inadequate, feeling like I had wasted my college tuition (I took on a lot of debt, and my family isn't rich. The whole reason I got into this was for some semblance of financial security.) I thought I had ADD and that maybe if I got diagnosed I would be able to get some of those magic amphetamines that everyone else seemed to be using. Instead the psychiatrist I saw recommended I seek therapy for anxiety and depression. I was putting so much pressure on myself to succeed and take care of my family that it was impossible for me to succeed in school or even really live my life to the fullest without addressing my thought patterns and emotional state. I don't know your situation, but there are plenty of respectable jobs you can get with a CS degree without being a master of CTCI. It won't be Amazon or Netflix but it's okay, most people don't work at a Facebook/Amazon/Apple/Netflix/Google.
- fusiongyro 8y agoThere are a lot of public sector jobs that require any degree. My mother had a long and fulfilling career in the food stamp program, starting out helping people sign up and moving into training, supervision, and eventually became a county director. This is with a degree in anthropology. You’d be surprised how many jobs there are whose qualifications are like “be able to type and spell and generally help make things get done” which are impossible to staff because nobody who can do the work would do it for the pay on offer. These jobs tend to be lower stress anyway, better confined to 8-5 too. People will joke that you should go into management. Maybe, but I’ve never heard of anyone going from a CS degree to managing programmers directly. If I were talking to someone who was one year into a degree and hating it, I would really push the idea of getting a technical vocational training in something like HVAC, plumbing, or electrical. Those careers require a lot more from you physically, but not as much mentally and the pay is really good. Better than you’re likely to get as some kind of administrative person. But there are other trade offs. I think a lot of people here are calling your bluff, because if you really didn’t like it, why are you reading HN? But you should know that you can have a good and fulfilling life not programming. But understand that you will probably make less money, often a lot less. You are the only person who can decide if it will be a better life for you to do something else with less money or to do something you dislike for more. There are lots of people who cannot program or dislike it who nevertheless manage to eek a career out of it. I can’t in good conscience tell you to do that, because they cause the rest of us a lot of stress and what kind of life is that, where you spend every night sleeping fitfully trying to convince yourself that you fooled us yesterday (you didn’t) and just need to fake it a little longer. So don’t. Find something that you enjoy and do that instead. You 100% have time to do something else. Just stop and do something else. Don’t torture yourself. You are what, 23? Go get some more loans and get a degree or certificate in something you want to do, and live your life for yourself.
- kungtotte 8y agoI think a large hidden factor when comparing pay is the length (and cost) of the education required as well as hours worked. I make 45% more than the median income here (Sweden) with zero education and averaging 35 or so hours per week, working as a septic tank truck driver. It's not as much as I'd make as a software developer; but I never had any student loans to worry about and what software devs are working 35 hour weeks and still make bank?
- megamindbrian2 8y agoI thought I was "resilient". I was wrong.
- nickodell 8y agoI'm sorry about that. Maybe you can switch tracks without losing what you've already accomplished. There's a paper by Phillip Guo about conversational programmers. These are people who do not program, but seek to learn programming so that they can be better at some non-programming task. He's got three papers one this topic, but you're most interested in this one: http://pgbovine.net/publications/conversational-programmers-in-industry_CHI-2016.pdf http://pgbovine.net/publications/conversational-programmers-... Particularly look at table 2, which is a summary of the motives of conversational programmers.
- hfdgiutdryg 8y agoReal world software development work has almost nothing to do with the types of exercises you're likely doing. Focus on solving practical problems and making software that provides value to people, not brain-teaser, CS-heavy exercises.
- cncrnd 8y agoSounds like an anxiety disorder more than a technical issue, if you have a CS degree you would most likely not have trouble with easy problems given a clear state of mind.
- godot 8y agoI don't know if this helps, but I personally find coding interview practice sites/problems to be extremely boring, difficult, not fun, and frustrating to work on. I'm saying this as a 13-years-of-experience software engineer; I've been called a rock star or ninja or something similar in almost every company and team I've worked in (big and small), and throughout my entire career and the numerous times I've job-hunted, I have never passed a single interview that involved those types of questions. (I've interviewed at both Google and Facebook, both more than once, at different points of my career, with no success) I pretty much always end up at a company where I had a really easy interview and we just talked about my experience and projects. I am (I'd like to think; and I think my coworkers mostly agree) good at everything involved in a software engineering job (building things, architecting things, communication, working well with others), but I absolutely cannot solve those whiteboard interview problems, especially during the interview. I saw that itamarst posted a link for a list of companies who don't do "whiteboard interviews" type of questions. If you believe you're a good dev and can build stuff and just hate those interviews, I would encourage you to start there and try interviewing at those companies and land your first professional job, and see if you're really cut out for a software engineer role.
- simonbarker87 8y ago> “really easy interview and we just talked about my experience and projects“ This is what interviewing is like in 99% of other sectors, even engineering. You might be asked some competency based questions at a larger organisation but the whole “dance like a monkey in a high pressure environment while we watch” whiteboard/coding test feels like cruel and unusual punishment to me that is nothing like the job of actually programming.
- AstralStorm 8y agoIt is testing for people who can solve the below 5 percent of real problems under immense pressure. Even development crunch does not work like these tests. The trouble is, the skillet to do so is not actually overlapping with the one needed for prolonged deep or repetitive work. So you end up hiring either fresh heads from such pressuring environments, super geniuses (yeah right) or people who learned to pass and game these tests.
- cjhanks 8y agoFirst off, if you're beating yourself up because you cannot do these Leetcode, Project Euler stuff - stop it. You will probably not be the best algorithms developer, but who cares? Don't sit around and say, "Where can I go from here?". No matter where you are, figure out where you want to go. And 9 times out of 10, the skills you have accrued in your life will be of some value. That is my experience, anyways.
- orcs 8y agoThis is exactly how I feel. I'm 2/3 the way through a CS degree as a mature student. I feel like I've learned absolutely no programming at all.
- my_usernam3 8y agoDude it took me a whole year in the industry to feel like I knew ANYTHING about programming. Don't be discourage by that feeling, and don't let other's outwards confidence fool you. Were all 10 years olds pretending to be adults.
- noonespecial 8y agoHave you ever used the computer to make something for yourself? A personal project? Even a clever hack with a spreadsheet to save some time? Congrats. You're a Programmer. (And probably in the top 10% of all "computer geeks" everywhere). Someone wants to hire you.
- deleted 8y ago[deleted]
- troymc 8y agoMaybe asking HN people isn't the best way to decide. Please also consider talking to a career counselor (or similar) or reading a book based on evidence.
- Tmp1234 8y agoAny books in mind?
- a-saleh 8y agoYou have several options. This is what I would do in your place. First, I would forget about interview-prep. Second, I would try to get better idea about actual work, call friends from university that already work, and talk to them. I did learn this way that the day-to-day work in i.e. big corporations in a well run department is not really stressful, especially compared to a white-board interview. Some friend might even have an opening. Going through a referal is much better than just applying. If you don't have friends with jobs already go ask on twitter. I think people around i.e. @sehurlburt form quite a friendly developer community and Stephanie herself often retweets i.e junior CVs. Third, I'd figure out what position suits me. I would do this after I have realistic expectations about my work-environment. If programming itself is that stressful, I would probably advise-against doing ops-work, because baby-sitting servers can be even more stressful. But there are many positions that might fit you. Manager - even though in many corps, people view getting to management as a promotion, there actually are junior managment position. Requires mostly people and organizational skills. Having a CS degree should help you stand apart. Technical writer - mostly means writing documentation. If you have good writing ability, having a CS degree should be a plus. QA - mostly software testing. Skill requirements can vastly differ, i.e. my boss expects me to be a decent coder, with some ops-experience. A friend of mine has 101 Javascript under his belt and in different corp mostly produces test-case documents in Word, another friend mostly clicks through a web portal based on a giant checklist. All of us have the title QA in their org. You still might want to be a programmer. There are many levels of skill/stress/benefit ratios available. If getting a job over a beer/coffer with a friend whose department/company has open position is not an option, I would go to a job-fair, or if I'd have a company I actually like, I'd wait for when they have an open-house, or something like that. I would talk to a recruiter there. That is how I got a job at RedHat as a QA more or less :-)
- T10000 8y agoTo study and learn anything technical you really want to be in calm and serene state of mind. This state is easy to achieve. I apply Two Old Goats on my belly during the day time to resolve stomach knots and Vicks Vapor Rub on my feet and belly at night. Among many other things, tight stomach can cause skin inflammation which makes your complexion look terrible and post nasal drip which gives you bad breath and nasty taste in mouth. Resolving anxiety issues straight up kills these problems; also dramatically improves ability to retain info and deal with ugly problems.
- JoshCole 8y agoThere is something to the ideas expressed here which I think speak to your situation, specifically I note a lack of joy and play in your skill acquisition: https://www.physics.ohio-state.edu/~kilcup/262/feynman.html https://www.physics.ohio-state.edu/~kilcup/262/feynman.html
- Maro 8y agoAre you sure that the problem is programming itself, and not stress itself? Ie. if you were a biology major or whatever, and you were stressing out over interviews for pharma companies, would it be the same? If yes, then you're kindof in luck, because it's not about CS, you're just stressing out. In this case, get help on that. As other people here have asked, do you enjoy programming as a past time? Do you write stupid little things for youself? Have you made N websites for yourself? Have you compiled the Linux kernel just for fun? If the answer is "yes, I like doing things like this in my past time", then you're on the right track to be a programmer. If no, then maybe not. In that case, you can still be a good programmer, google "cal newport follow your passion is bad advice". In any case, if you decide you don't want to be a programmer, a good parallel path you could go into (which friends of mine who aren't really interested in programming have gone into) is Data/Analytics/DataScience. Essentially you can make roughly equivalent money by helping companies make decisions based on their data. There is a stack of roles here, from infra, to data engineer, all sorts of analyists, data scientists, and so on (the division is not clear). If you want, you can have a very rewarding and successful career here and just do SQL if you go into the Analytics/Data Science region of the stack, you don't even have to write Python on an everyday basis.
- amorphid 8y agoHave you considered that you stink are completing those puzzles because they are so damn boring? I hate learning that way. I never make it past the first chapter of CTCI when I try to attack it head on. Find another way that works for you. I did. My personal "learn all the things" path to success has been taking things apart and learning to understand the pieces.
- bayesian_horse 8y agoTake an ADHD test. It might change your life.
- ksec 8y ago>I experience PTSD like symptoms from the constant barrage of negative thoughts the difficulty and stress of doing these problems are causing me. I am not sure if we have had similar thoughts and feelings. The idea that I am simply not good enough to be a programmer, after trying so hard. And I cant solve these problem quickly enough to be a programmer. I can definitely program, given enough amount of time, but being a professional programmer seems like a different thing. And there seems to be a immense amount of knowledge that I have absolutely no idea, there is more unknown then in the known. How am I suppose to do this day in day out? And it causes anxiety issues? is that similar to how you are felling?
- Tmp1234 8y agoYes. Very much so.
- ksec 8y agoGreat!. Then I can give a few of my thoughts, I wouldn't say "advice". But you can have a think about it. I did Computer Engineering degree, which is different to Computer Science. At the time I have always thought how CS would be a much better degree, but I could not get in due to higher entrance requirement, so instead I got into CE. I dropped into the CS class whenever I can. Reading their teaching materials, I grinned. I remember thinking why do they teach outdated stuff like these. Perl! ( It was on the way out, the future is super hyped thing called Java ). May be because my Collage wasn't all that good in CS ranking. May be that is why. In CE, we actually do lots of what I call real engineering work, with transistor and low level design. Which requires lot of discipline, and rules to follow. After nearly 20 years. My thoughts are, none of the CS degree preps you for today's working environment. And it never will. It doesn't matter which college you go to, 90% of those work aren't really related. The modern tech teaching is not outdated, it is just the hype cycle moves so fast and tech industry as a whole ( Actually not tech industry, but specially Silicon Valley ) likes reinvent the wheel every few years what was put into text book material are likely outdated. Most of the best programmer I have met, actually not most, but ALL of them. Are self taught. And what is funny, ( sorry if this hurt anyone ), most programmer have absolutely No idea what the heck they are doing. They somehow got a pieces of code working, compiled, and it works. Don't ask them why or how or if it is good. At the moment they would have thought those code are good enough, likely 2 years later they thought it was a pile of crap. Compared to real software engineering, which for example, code used by NASA, or Sqlite, the amount of testing and thoughts required are insane. But those are niche cases in today's market. Then there is the domain knowledge, ask DHH to explain Linux Kernel to you? He would have said who the fxxk understand this. Algorithm what? Ask Linus to do Web Programming? Who the Fxxk has invented these pile of abstracted mess and trillion of framework just to render a page? I was the few of the best in class for my programming project. But I never got a programming job, mainly because I had always in my mind, that real programmers were like Swordfish, Matrix, whatever thing that type so fast and could solve a problem instantly. But instead, now I know most programmer just stare at the monitor and does JACK ALL for a whole day. Programming is 80% Reading + Thinking. Actually I will go on to say 90%. For a 100min of work, you only spend 10 min typing it out. There is actually lot of thinking going on without you realising it, when you have lunch, dinner, sleeping. Your Brian is constantly working in a background thread without you even knowing it. I wish I had known this at the time. I wish someone could tell me programming is like that. I could happily hack out a solution in my own time and schedule, but I cant think faster and solve a problem in mins. I had always dream of telling others; the world outside geek circle, how programming really is. I had always wish someone could fund me doing a Mini film, and have it played in all university or programming courses. It will be a documentary of famous programmers every day work and programming. From Facebook, Google, Apple or Microsoft. Having them staring at the monitor, and fast forward showing they did zero typing of code. And has embarrassing question that should know but they don't. How all these programmers are really no different to you. I know how it feels, programming at your own schedule vs programming at someones else scheduled when you have no idea how long it will take. Would I be fired if I didn't work fast enough? Programming isn't for everyone. There is a difference between able to write program and likes to write program for a living. And finally you are young! Explore more! Unless you have a burden ( bring money home ), keep looking, don't settle. I didn't understand the explore options when I was young, but once you are in your 30s, your freedom to explore are limited by families, relationship etc. Good Luck.
- deleted 8y ago[deleted]
- sixdimensional 8y agoHi Tmp1234. I think an idea for you, is to see if maybe you can find a GOOD career counselor or mentor (who might be found in a first job even). If anyone on the thread has any recommendations, please share them (or volunteer!). It would be even better if you could find someone who is a programmer / developer in a day-to-day business who could talk to you regularly about it and maybe help you out / support you. It sounds like you're having trouble getting started in this career. Trying to get a first job in this area out of school can definitely be difficult, competitive, tiring and/or scary. It's perfectly normal to feel those things, I think (I know that I have). One can believe that, should you choose to continue down this path, when you find the right place, you'll know it because they'll give you a chance and support you. Perhaps you could seek out an internship first - try to find somewhere with less pressure for success and more room to grow - if you can afford it. You have one thing going for you that I didn't have - a CS degree (my story is a different one though and I wanted this reply to be about helping you). You don't have to be a perfect l33t coder on day one. You will find that, programming problems can be vexing headaches like you describe - and not being able to solve them can be extremely frustrating. If you chose to keep going down this path, you might come to learn that this is more normal than not, and as you gain experience - when you hit those brick walls, you learn to go around, or under them. Or you might work really hard and break the brick walls down. Or you might invent a new kind of concrete and realize you don't need brick. I'm not waxing metaphors, I am serious and I'd ask other developers to chime in here if their experience matches this. Eventually, honing this skill actually becomes a reward - but it certainly takes honing and practice and time. By the way, graduating with a CS degree is no mean feat, so congratulations for being capable of doing that! I hear you asking about other career paths. I can't answer that question immediately, but, some others on this thread have suggested there are a lot of tangential jobs - like project management, product management, really, there are a great many number of possibilities. Within information systems and technology, you can be a database engineer/developer and work with ETL, data and SQL. You could become an system infrastructure person, for example - doing cloud architecture with AWS/Azure/GCE/etc. or even managing physical hardware. You could work in IT support. You could work in technical sales or solutions. Those are all possibilities that are maybe less hard programming intensive. Perhaps there are too many possibilities without some direction / feedback from you about what you like. It is entirely possible that you may want to do something other than programming or technical in nature too. What are your interests? For example, some people who thought they would enjoy programming, really end up enjoying cooking and might work towards becoming a chef. You can spend a little time exploring what other options you might find exciting or interesting, and then write down pros and cons / compare and contrast for those things and for working in some sort of programming capacity. Don't give up immediately, but don't necessarily settle if something else really calls out to you. You also just went through a lot working finishing school and graduating. Maybe you're a bit tired - and need a break (top rated post by whack suggests something similar). That's a great recommendation. It's hard after going through something difficult and stressful to jump right into another similar thing. Don't take a break for too long, but be willing to take a break. We all need them from time to time. You can think of the kind of skills you gained programming in college - focus on the skills not the programming - problem solving, critical thinking, creativity, being analytical, etc. and see what other careers or vocations need similar skills. Another final thought - find some places that you can interview without caring about the outcome, but rather simply to gain experience interviewing and see how it goes. Find something that interests you, but isn't necessarily good or bad if you were to get or not get the position. Try to interview, even for a job you might not want but is at least involving programming - if you don't feel comfortable or they give you some horrible programming task, you don't have to finish the interview. Find a way to turn this into an experiment. You could think of it this like a minimum viable product for a startup, where you are the product, and the goal is to see how you fit in the market. Be willing to experiment, make hypotheses, and try them out. Be willing to fail and learn and take opportunities to grow too. And remember, the difference between science and screwing around is writing it down! Best of luck to you. You have already shown you care by asking questions - so keep up the good work. Ask more if you think this is helping!
- 1k 8y agoThere are LOTS of jobs that appreciate programming knowledge but don't require you to do hard core coding. Business analysts, project management, tech sales, testing, support, etc Choose an industry-focused company (banks, oil & gas, telecommunications) instead of a tech-based company.
- BIackSwan 8y agoIt looks more of a psychological issue and lot of stress causing a vicious cycle. As whack suggested - try relaxing a bit and giving yourself a break for a week or so. You will be surprised at how effective breaks are in improving performance. This is one of the most common mistakes junior programmers do - no breaks and constant coding until you get burnt out. I am writing a book on using mindfulness to become a better software engineer - https://leanpub.com/selfdebug/ https://leanpub.com/selfdebug/ - you can download it for free and see if it helps.
- throwaway613834 8y agoLike most other people commenting here, I don't have advice on the career path—in my case, it's because you haven't given any information about what your strengths or interests are besides programming. Could you give us a little more info on what you enjoy, or what you think you're good at? What did you like in high school or college? Do you like math? Journalism? Lab work? Politics? Aside from that, I have one other piece of advice that you may or may not enjoy hearing: I would stop—like, right now—even thinking things like "I experience PTSD-like symptoms". (Unless you're dead serious about your symptoms being similar to that of those who really have PTSD, in which case get a real diagnosis from a professional.) There are many reasons for this, two of them being: 1. It's hard enough for professionals to get this stuff right without getting their diagnoses called into question (including by armchair-psychiatrists like us programmers on HN). Heck, people here are even questioning your assessment of the CS question's difficulty. (!) And there's so much context and prior knowledge/experience to evaluating symptoms that's difficult to judge as a layman. Just go on WebMD next time there's a weird pain or tingling or bump somewhere in your body. If your experience is anything like mine, you'll quickly find that you may have anything from M.S. to cancer... when in fact it might be nothing more than a cold (if even that) and it could go away after a while. All you're doing is depressing yourself. 2. The point of identifying any illness is very simple but very critical to keep in mind: to help find you a treatment for current or future symptoms based on the known literature. If you're not doing that, then telling yourself you have—or might have—a disease/disorder isn't doing you any good. Again, you're just depressing yourself. And what's worse is that you're suggesting to yourself that you don't have control over what's happening, when in fact there's quite a good chance you do.
- catchmeifyoucan 8y agoLeetcode problems are a mess. They're good to practice, not to learn. I graduated with a degree in CS, fairly recent. I was afraid of recursion. Never intuitively had a recursive solution. Then it hit me, the matter of fact is that I truly don't understand it on a fundamental level. I watched beginner videos, in particular, college lectures. Marty Stepp from Stanford. His CS2 videos were super helpful. Then I jumped to doing recursion problems, only homework problems (Like fibonacci). Eventually, I began doing more problems like backtracking. Then I went to Leetcode, and I only did the backtracking problems. Success! I did them like a champ. My advice is, don't try to solve all the leetcode problems, you won't succeed. Focus on one area, one area only: strings, backtracking, recursion, etc. and master it. Live and breathe those problems. Watch videos. You learn programming by doing, not watching or reading and assuring yourself you'll know when the time comes. No copy paste ever! Pramp is also a good peer interview platform, use that as a test. I have faith in you. Don't give up on CS. Also you can checkout the PM route - as "PMs who can code are gold"
- adrianhel 8y agoI got 99 problems, but quicksort ain't one!
- oh-kumudo 8y agoFirstly, how much do you code when you are doing your undergraduate? No offense, but 2-5 hours seems too long. If so, you should first brush up your basics, and let go of the thought 'I am from a CS major'. Programming is almost always self-taught, or can't really be learnt effectively through classes, only through, you know practices. Assuming your college did an OK job, you should pick up and relearn everything relatively fast, in 2-3 months or so. Algorithmic questions can be pretty intimidating for sure, so again, practice a lot, ask your friends to do mock interviews, and go interview around with less famous companies on the market, to understand the process will also help. Anyway, self-taught is the only way here. I have an imposer syndrome when I graduated. It does make feel better knowing that one of the best guys in our class, who we assume is already a CS guru at the very beginning, actually knows nothing about programming at that beginning. He was faking it to project confidence to us, but after getting positive feedback from the environment, he actually gained the momentum to learn and understand CS as the guru we thought he was. So it is not too late to do it all over again. Hope this helps. :)
- FreeRadical 8y agoYou may want to consider something like project management or IT auditing although you may not enjoy these fields either
- konschubert 8y agoIt may be that the problem isn't you, maybe it's just that you and CS don't fit. The others in this thread are right of course. Make sure your mental health is good. Make sure you try other approaches to finding a job in CS. And so on. I would just like to add another thing you can try: Give yourself a break, go for holidays for the first week of thr break and then afterwards do something else that's hard. Study a science. Study electronic circuit design and build something. Read about architecture and design a building. Or something else. Just something else than CS and challenge yourself. (I mean, don't sign up for a university course, better just read some textbooks or online resources.) Do this for a couple of days or weeks. And try to figure out if you are good at it. If you hate everything, then please, seriously, talk to somebody about your mental health. Maybe you are burned out or have a depression. It can happen to everyone and it can be fixed. Maybe you also just need more holidays or don't like work in general. I'm not excluding that possibility, I think that's a totally okay feeling to have but I also don't see a reason to assume that this applies to you. However, if you find something that keeps you interested for hours every day and where you feel like you're good at it, congratulations. Maybe CS just isn't for you. I'm not saying that you should then become an Architect or Electronics Engineer or whatever it was that captured you. (You can, of course, but that's a long term thing I'd say.) What I'm saying is that after having determined CS as the source of the problem for you, you can now look for alterations that are fun for you. Maybe you could be a product manager? You don't need to code, but it really helps if you know the language that developers speak. There are many other options as well I'm sure.
- nonsensetophat 8y agoYou have pleanty of options, just to name a few: - systems adminstration - network engineering - Incident response - Technical sales - Account management - Intellectual property law - hardware engineering - project management - product management - IT support - IT security - technical auditing - data analytics - computational biology
- ojhughes 8y agoA lot of experienced programmers would struggle with those interview questions. They tend to be pretty far detached from the what most programmers actually do in the wild. Thankfully, a number of good companies don’t use silly brain teasers to select candidates, opting for pair programming exercises instead. I would advise spending time learning about TDD, agile etc
- sAbakumoff 8y agoHow old are you? mid 20-ish I guess? It's not late to find a new job - Wallmart cashier, Uber driver, HelloFresh delivery guy, et cetera.
- oliwarner 8y agoI am continually surprised by HN and its reluctance to call out mental health issues. It is not normal to feel like your world is ending when you're under pressure. Forget the rest of this stuff. You don't need more tests. Talk to a councillor with the aim they can fix or refer you onto CBT, or a psychiatrist to mediate. There is no shame in this. Not dealing with it is only going to cause unnecessary suffering. Address it and your interviews and life at a whole will all go a lot better.
- Tmp1234 8y agoYou're not wrong that there's a mental health issue at hand. There's also a lot riding on my ability to do these leetcode questions. I've been talking to councilors for the past decade, but I'm at a point where I need to be financially independent. I wrote more about it in this comment: https://news.ycombinator.com/item?id=17594084 https://news.ycombinator.com/item?id=17594084
- oliwarner 8y agoBut why do you want to work somewhere where you have this grotesquely irrelevant gauntlet? A silly interview process doesn't mean it's a good job or a good company, it just means they've got more applicants than they know what to do with. I know there's a lot of pressure here to work a 80h week but you can be financially independent without pressure. Just pick your battle. You've got a skill. Believe it or not, programmers are needed all around the world. The pay is dramatically variable but so are living costs. Move. Find a nice town with a small software company that's hiring and start a life. Get your head straight. Read. Get a hobby. It's all much easier when you're not blowing $3k/month on a 1 bed studio. You can also work shunt jobs directly for companies. Build websites, build apps. Lots of project management and quoting for things that never come to fruition but it's a job and very little overhead. I'm not trying to put you down. I'm sure you can jump start you happiness the way you're desperately trying to... But stepping into a low pressure job somewhere where it's dirt cheap to live is a much healthier approach to the problem you have.
- ebcode 8y agoI checked out some of your previous posts and see that you are really, earnestly struggling with your decision to get into programming. I feel for you, and I'll try to give you some advice with my "professional programmer"(TM) hat on. Um, first, I think it would be helpful for you to find a way to ease up on the pressure you're putting yourself under. Maybe that means getting a "good enough" job in the meantime, or just a "regular job" (minimum-wage style), so as to get some immediate cash flow going. If money isn't a stressor for you, maybe just take some down time. (That top comment is top for good reason). The second bit of advice would be to just actually go do the interviews, whether or not you think you've prepared "enough". You're a fresh college grad, and no-one is going to expect you to have all the answers. Don't worry about fucking up, basically, because of course you're going to. The key is just persistence -- don't let the fucking up get you too down, because you've still got to go to that next interview -- and make sure you learn from your fuck-ups, so you don't keep fucking up in the same way. I can't tell you how scared I was during some of my first interviews. Reaching out a sweaty hand because I was a bundle of nerves is just one terrible experience. But if I hadn't had that experience ... well, you get the point. Maybe programming isn't for you, but maybe a job you don't love will pay the bills, and that's okay. Or maybe it's just that leetcode and CTCI aren't for you. I mean, some of this interview stuff is like "security theater" at the airport, only it's "interview theater" at the whiteboard. Ineffectual at best, but demoralizing and humiliating at worst. Don't let the red-black trees fool you. There is real work to be done!
- horofox 8y agoThe problem is smaller than you think. You need time. Dunno if that helps, but I've been programming since 8 years old. When I did college there was definitely a considerable amount of people that I might consider that... they didn't know how to code or to properly solve problems, but that's because they didn't improve their problem solving skills. If you have no monetary or legal obligations, just stay at your parents place, sit down, create a SPOJ account and go problem by problem until you are confident. If I had quit 2 years off my career to study problem solving now that I am 30, it would rarely make me lose anything, much less in a 30 years of work timeframe. Go get rid of that anxiety I think you can only solve it by being more confident, and to be confident you need time. It is much easier to be a good guitar player if you start as a kid, but I bet that anybody that dedicate a few years will be able to perform well, peogramming is the same.
- spaginal 8y agoDo something else.
- phonebucket 8y ago> I put all my eggs in the “being a programmer” basket and it’s clearly not for me If you are sure you don’t want to be a programmer, then don’t be one. Your degree shouldn’t pigeonhole you. If you are a recent graduate, you have plenty of eggs for whichever basket you choose. Edit: what about data science? There are plenty of jobs available. Some might be based on coding, but others are based on maths, and others based on having a good business sense. It’s a diverse field which is in vogue and could allow you to pivot your career.
- horatiocain 8y agoForget CTCI, that's all bullshit. What have you built? Show it off, build more stuff, and find a team you can work on.
- RantyDave 8y agoBe a project manager. Extra marks if you can be an "agile" project manager because then you get the most post-its.
- isodude 8y agoIn my experience, the negative thoughts and stress is associated with pressure to complete the task. This is relateable with most larger tasks (i.e. essay writing). I think it's two fold, first off, in engineering, nobody wants you to complete a problem 100%, rather solve it 25% but that solution is quite clear. Then you solve 25% again which was way easier after you solved the first 25%. This way it's easier for people around you to chime in with hints or to get an overview of the task / gain insight that the problem is not defined correctly. It's an iterative process! Second, the negative thoughts you face is not that uncommon, doing something you have no clue how to solve is difficult. Instead of trying to solve the problem, think about what strategy you should have solving the problem, in your CS degree you have lot's of tools for that if you look back. Avoiding the fear of not completing is a good way to actually complete, that's my motto anyway. A good way to get on your feet(motivation wise) is to do easier things for a while, also something that really motivate. Maybe there's someone you know that have a problem that you can solve. If you feel that problems are too tough to do, pick something easier to get the flow going again. The most important thing is to feel good! Like the most upvoted answer said, chill out. Increasing the pressure is not the answer. If it's anywhere near what my SO had, Yoga/structured days(doing something 1h, taking a walk, doing something 1h...)/dark rooms. The stress is real and should not be ignored. Getting a job that's completely off the field is not a bad thing either, you got yourself a CS degree, which you always will have in your back pocket. Doing something else will make you able to combine that degree with other work experience. And everyone else will think about you as a super human that actually get's computers ;)
- anuragojha 8y agoDecide what you want. Make a plan. Take baby steps. Climb that hill and go get it. If you are thinking about dropping this whole line, my advice to you is (1) do what you need to do to get a job as a software engineer; (2) walk away from it after two months. Do anything else after this, but make sure you nail this sucker that is making you feel this way. Make sure you beat this challenge before walking away. I am from India, until a few years ago, every fresh graduate and I mean civil engineer, arts, mechanical engineer, electronic engineer, you name it, got a job at an Indian IT firm. 8 years hence, they are coding away, carrying on. People who don't even have the basics in CS are making it in the IT industry. You have a CS degree, get some use out of it. Don't listen to bullshit from others and yourself about doing something else. The most celebrated victories are comes from the individuals in the more dire situations. But before anything else, start exercising a full hour every single day, eat and sleep well. Dress well throughout the day. Do this for a full week and start fresh next day if you fail. It will work like magic and help you pull your head out of wherever you have it parked. Oh and before you sleep, dream of making it through.
- z3t4 8y agoMaybe you have not yet found your programming style. Schools tend to teach object oriented programming, but maybe functional programming is better suited for you. And also look into test-driven-development with test-first approach, where problems are broken down to really small parts and you solve one part at a time.
- digitalpacman 8y agoQA Automation.
- 21stio 8y agoYou could do (least techy at the bottom): DevOps Data Engineering Product Management Project Management Agile Coach
- ninedays 8y agoBeen there. Have a CS degree and did programming for most of my `student years`. Noticed only the last year that I didn't want to be a developer and had no idea what to do if you're not a developer. I am now working as a QA and I find it great. My developer background really helps me talk with the devs and understand what goes through their mind. Do not hesitate to talk to a head hunter and explain the situation to him, he may have some jobs you might be interested in even though you never thought of it. Warm vibes, I hope you'll love what you'll do someday.
- austincheney 8y agoI was hired by Travelocity (many years ago) to be a designer. A few months in they had plenty of designers but couldn't hire front-end developers, so they made me a developer. It wasn't a choice. If I wanted to stay employed I had to figure it out. After several military deployments and treating programming like a hobby for some open source projects I developed a talent for it. A talent a CS degree could never provide. I have seen several developers who thought they were awesome because they had a CS degree from a fancy school. They were very wrong. Programming is a skill. Skills take practice to develop. End of story. Most people are confused about the nature of education, especially CS students. Education is not trade school. Trade schools exist to get you started on a skill. Education exists to provide beneficial structured knowledge. If you are having trouble figuring this out I wouldn't hire you either.
- aryamaan 8y agoHow will you develop that skill again now considering you have already gone through the journey?
- austincheney 8y agoStart writing code on your personal time outside of work. How do musicians get started? They just do it.
- taparisbat3 8y agoSee a therapist if you can.
- thewileyone 8y agoSwitch to being a tester for your first job. Learn a different point of view to producing quality software. If you want to go back into programming, it would less difficult. This is a path that I took.
- jacekm 8y ago+1 to that. I started as a QA hoping to switch to being a dev in the future. However I eventually grew to like my role and I enjoy my work very much. I am much better QA than (potentially) a dev. IT is not only programming, there are plenty of more roles there.
- generallyfalse 8y agoI should like to see some of the problems that take you 2-5 hours to solve. Show your solution, and text about the way you tackle the problem. Perhaps you need a mentor, someone that can give you some tips about your coding abilities and what you should do to improve. If you need more than 10 minutes to sum the cubes of numbers from 1 to n in python, then I think you have a problem as a programmer. Can you point to a leetcode problem that takes you 2-5 hours to solve? Edited: Two weeks ago you submitted a similar post and in the comments you give this example: >> To give a concrete example of some of the above, just this morning I tried to code the brute force solution following problem: Give two sorted arrays return the median. I spent over an hour trying to implement the brute force solution involving linearly going through each array and couldn’t code it in Python. As a hobby programmer, my ten minutes approach: def median(a,b): ...: ab = len(a)+len(b) ...: pos = ab/2 ...: ia = 0 ...: ib = 0 ...: for ic in range(pos): ...: if a[ia] <= b[ib]: ...: x = a[ia] ...: ia = ia + 1 ...: else: ...: x = b[ib] ...: ib = ib + 1 ...: if ab % 2 == 1 : ...: return x ...: else: ...: return (x + max(a[ia],b[ib]))/2 ...: But it is not correct
- Tmp1234 8y agoFor the median question, I did not allow myself to combine the array. My idea was to increment in each array based on which value would come next in a sequence (as if they were on array), stop when I've incremented n times where n = length of both arrays / 2 (the median position) and then return. Here's the code: class Solution: def findMedianSortedArrays(self, nums1, nums2): """ :type nums1: List[int] :type nums2: List[int] :rtype: float """ length = len(nums1) + len(nums2) medianIndex = length // 2 ptr1 = 0 ptr2 = 0 curr = 0 flag = 0 if nums1[ptr1] < nums2[ptr2]: val = nums1[ptr1] else: val = nums2[ptr2] while curr < medianIndex: if nums1[ptr1] == val: if nums2[ptr2] < val: curr += 1 ptr1 +=1 val = nums1[ptr1] flag = 0 else: if ptr1+1 < len(nums1) and abs(nums1[ptr1+1]) - abs(val) < abs(nums2[ptr2]) - abs(val): curr+=1 ptr1+=1 val = nums1[ptr1] flag = 0 else: curr+=1 val = nums2[ptr2] flag = 1 else: if nums1[ptr1] < val: curr += 1 ptr2 +=1 val = nums2[ptr2] flag = 1 else: if ptr2+1 < len(nums2) and abs(nums2[ptr2+1]) - abs(val) < abs(nums1[ptr1]) - abs(val): curr+=1 ptr2+=1 val = nums2[ptr2] flag = 1 else: curr+=1 val = nums1[ptr1] flag = 0 if flag == 1: med = nums2[ptr2] else: med = nums1[ptr2] if length % 2 == 0: if med - nums1[ptr1 + 1] < med - nums2[ptr2 +1]: return (med + nums1[ptr1+1])/2 else: return (med + nums2[ptr2+1])/2 else: return med Here's what I wrote for your sum the cubes. Took me 1 minute. I hope I didn't misunderstand the question. def sumCubes(n): sumC = 0 for i in range(n+1): sumC += i 3 return sumC I'll give you 2 more leetcode examples. Neither passed all test cases. The first is 2-3 hours. The latter 3. I didn't post the last submission for the latter one because I believe the one I posted is more telling of my thought process and coding ability imo so that solution is between 1 and 2 hours of work, but I wasn't able to get it in the end. I honestly don't recall my idea here. I think it was to see if the start and end of the array had the same letter and if it didn't cut off the first and last letter and continue analyzing the array until the center is reached. https://leetcode.com/problems/longest-palindromic-substring/description/ https://leetcode.com/problems/longest-palindromic-substring/... class Solution: def longestPalindrome(self, s): """ :type s: str :rtype: str """ curr = "" big = "" for c in s: curr += c if curr != curr[::-1]: if len(curr[:len(curr)-1]) >= len(big): big = curr[:len(curr)-1] print(big) while curr != curr[::-1]: curr = curr[1:] if len(curr) > len(big): return curr else: return big I thought there were 3 cases in this problem. You hit a character, you hit a ? or you hit . The first one meant an exact match had to be made. The second that there only had to be some character in the string to take a position (the string couldn't end if there was a ?). The last could mean 0 to n matches so there had to be a lot of checks in my mind. I also thought about what happens if there's "?" which I wrote as a case inside the "" if case. When test cases didn't work I would try and code for that test case and it kept going wrong so I eventually gave up and looked at the solution. My main flaw is that it didn't occur to me that backtracking was the way to go or a way to check all the potential combinations. I thought you just had to keep moving forward. https://leetcode.com/problems/wildcard-matching/description/ https://leetcode.com/problems/wildcard-matching/description/ class Solution: def isMatch(self, s, p): """ :type s: str :type p: str :rtype: bool """ if len(p) == 0 and len(s) == 0: return True if len(p) == 0: return False i = 0 j = 0 while i < len(s): if j >= len(p) and p[len(p) - 1] != '*': return False if p[j] == '*': while j < len(p) and p[j] == '*': j+=1 if j == len(p): break elif p[j] == '?': x = len(p)- j while len(s) - i > x: i+=1 while j < len(p) and p[j] == '?': i+=1 j+=1 if i > len(s) or j >= len(p) and i < len(s): print(i) return False if i == len(s) and j == len(p): break else: while i < len(s) and p[j] != s[i]: i+=1 if i == len(s): return False elif p[j] == '?': i+=1 j+=1 else: if p[j] != s[i]: print(i, s[i]) print(j, p[j]) return False i+=1 j+=1 if j < len(p): while j < len(p) and p[j] =='*': j+=1 if j == len(p) and p[j-1] == '*': return True else: return False return True
- mvp 8y agoThere are plenty of good jobs in tech companies that require highly technical people who are not great programmers, or even programmers. It is possible that you are overestimating what's required and underestimating your own ability.
- marmaduke 8y agoIt sounds like your graduation set up expectations that developing chops would be easy, but it’s not for anyone. I’m a terrible programmer but it never bothered me because my degree is in neurobiology: just avoiding a segfault was already a success for me (when I started).
- mikeru 8y agoDid you NOT enjoy programming before graduating and interview prepping? Then I suggest you look at interviewing for positions tangential to 'software engineer'. Look for entry-level positions in software quality assurance (QA), systems engineer, etc. Read the job descriptions and see if anything appeals to you. Often these jobs will pay less than a position as a software engineer, but they don't require programming but will value your CS degree.
- JudasGoat 8y agoI don't have much personal insight but CBD is appearing in the news lately and other people have said it lowers their ability to ""give a shit" about stuff.
- empath75 8y agoDude. Relax. Programming isn’t that hard. You don’t need to get a job with Netflix or google. The job market is absolutely desperate to hire anybody who knows how to write a for loop. I’m making a six figure salary writing chef cookbooks and cloudformation templates and I don’t even have a degree. Just slow your roll, dial back your expectations and apply for less high pressure jobs, man.
- AndyMcConachie 8y ago> Are there any career paths I can pivot to that are less cognitively demanding than software engineering where this degree would be an asset? Yes. If you understand basically how computers work and what they are capable of the corporate world will find a use for you. Can you communicate well? Like giving presentations? Try going into sales, project management or documentation. Are you a real people-person? Try going into people management. These are just general categories. The reality is that the world we've created for ourselves has a tremendous need for people who can be at the edges of complicated technology and act as an interface to some other world. Don't despair.
- zwischenzug 8y agoTake a break. This sounds like classic burnout. You need to regain the motivation and interest that got you here in the first place. You're young, and a bit of time doing something else will do you the world of good and remind you why you went down this path in the first place. Nil desperandum!
- lowken10 8y agoTechnical sales might be a good career path. Or perhaps technical recruiting. While these are sales jobs very often you can make more then your average software developer.
- rikkus 8y agoWhen I graduated I had already decided that software development was too painful and not rewarding enough - in my experience up to that point. I chose to pursue system admin - networking, scripting, installing, configuring. This was a good way to learn how to work with infrastructure 'hands on' and much less stressful than writing code, compared to my experience up to that point. I ended up finding a route into development where I wasn't banging my head against so many walls, and was enjoying it, then stuck with it for about 12 years. If you got a CS degree, you're capable of writing code, but you don't have to do it _now_.
- werber 8y agoI've worked with two interns in the past year who did coding boot camps after (I'm making assumptions here) not finding work with their degrees, the last one found a great job after the internship and I'm confident the new one will as well. Good luck!
- russtrpkovski 8y agoExplore software architect roles
- crispyambulance 8y ago"Being a programmer" on the job actually doing useful work for someone and knocking out contrived coding puzzles are two _very_ different things. Just keep interviewing and realize that although some places will use these tests as secret handshakes to cull candidates, many more will try to evaluate YOU in a bigger picture: other aspects of your background and attributes, how they think you'll get along with the others, your grit, communication ability, and like-ability. There is so much more to work than technical prowess (especially as measured by unrealistic quizzes). If your passion is software development, you are doing yourself a disservice to give up so early just because you are not performing the way you think you should be performing on puzzles.
- triviatise 8y agoWe do product management consulting and get some CS majors that dont want to code. Having a technical background is helpful and the path is solid leading to similar comp to developers.
- freemindm 8y agoComputers are fun in many ways. Maybe you can buy one wacom tablet and use your computer mastery into drawing beautiful art? A CS degree will ease anything computer related you go into but having the professional skill you want will always take you a lot of time. See what you feel you can do best and make you feel better, cuz if you are lucky and find something you can give yourself this is what you will be doing for more time than you lived until now. Patience and persistance. Good luck
- dangerface 8y agoDegrees are worthless. A degree courses is designed to be easy to grade, not to teach you anything useful. The point is to show you are capable of learning, not to make you capable of doing a job. This makes them fairly portable, while jobs may ask for a degree with a specific subject they will generally consider anyone with a degree, unless its marine biology or some shit. Code camps and uni are a good start, but if you want to actually know what you are doing, it takes years of experience, there is no way around this. > Easy problems take me 2-5 hours This is fairly typical of someone learning programming for the first time, it is also typical of someone coming out of uni with a degree. I wouldn't worry about it and just keep at it. > Even if I get a problem right, I gain little to no satisfaction at this point. Then quit this is the only reason people actually like programming.
- deviationblue 8y ago> marine biology or some shit Highly ignorant comment, makes everything else you're saying less credible. I'd say instead that STEM subjects are more conducive to instilling a certain style of thinking that's helpful for certain careers.
- zaat 8y ago>Degrees are worthless. A degree courses is designed to be easy to grade, not to teach you anything useful. My experience is very far from what you describe. I learned ton of stuff from teachers who were mostly enthusiastic about the field they were teaching. Do you write from your own experience? do you have a degree?
- zamalek 8y agoIt depends strongly on where you go. I dropped out in my 20's because I was learning bugger all from completely disinterested lecturers. I'm picking it up again at 31 (new university) and I'm not only mostly enjoying it but I'm even enjoying "bullshit" subjects that have nothing to do with CS. Some universities (I would assume most) are businesses that print degrees and answer to shareholders, others are learning institutions that answer to students.
- 8y ago
- dotdi 8y ago> Easy problems take me 2-5 hours. I'd chime in to say take it easy. Remember: interview problems are very, very far removed from actual, day-to-day software engineering work.
- kamaal 8y ago>>I recently graduated and have been grinding for interview prep (leetcode and CTCI mostly) So basically academic exercises on rote memorizing Math theorems which have no remote influence to real software development. >>but I’m getting no where. Easy problems take me 2-5 hours. I know ace developers with several years of experience who would fail at these problems. >>I experience PTSD like symptoms from the constant barrage of negative thoughts the difficulty and stress of doing these problems are causing me. Do not waste 2 minutes on this, because those problems are no reflection on your abilities. --- Please try to understand this. People who invented these algorithms, took years to arrive at working solutions with several years of academic career behind them. You and I are not going to crack the solutions to these algorithms in hours. Those who do, build upon memorized patterns. If you consider this algorithm ability you might as well start handing fields medal prize to every joe who has memorized multiplication tables.
- gyc 8y agoIf you enjoy writing, your CS degree would be an asset if you want a career in patent law as a patent agent or a patent attorney.
- lucaspottersky 8y agoi've seen many "pivoting" to Project Management.
- 1001101 8y ago#1: have you talked to an occupational therapist? Software is going to be stressful, there are going to be time pressures. You might find an organization/industry where these are minimized. Medical, aerospace move at a very slow pace. I can think of a few companies in the industrial space where things move at a pretty slow pace as well. Otherwise, software test, product management, documentation off the top of my head. Asking for help is a good trait for a programmer to have. Good luck to you!
- faitswulff 8y agoI think you're on the right track with therapy, just probably not occupational therapy unless you need rehabilitation for problems with fine motor movements (holding a spoon, writing, etc.)
- 1001101 8y ago> I think you're on the right track with therapy, just probably not occupational therapy unless you need rehabilitation for problems with fine motor movements (holding a spoon, writing, etc.) OT's can help with PTSD as well. [1] [1, PDF] https://www.aota.org/-/media/corporate/files/aboutot/professionals/whatisot/mh/facts/ptsd%20fact%20sheet.pdf https://www.aota.org/-/media/corporate/files/aboutot/profess...
- deleted 8y ago[deleted]
- nickelcitymario 8y agoAs someone who has never (and likely will never) pass these kinds of tests, am I in a minority in thinking maybe they're a good way of filtering the non-geniuses? I.e. Maybe the reason I can't pass these tests is I really am not sufficiently skilled/talented to work at Google? At some point, I think we need to accept that sometimes other people are not the problem.
- Tmp1234 8y agoThis is basically my thinking :/
- cloverich 8y agoEveryone has limits. However, people vastly overestimate the impact of intelligence and underestimate knowledge, experience, interest, and work ethic. If you like programming and expose yourself to a sufficient variety of problems and architectures, over time you'll slowly run out of situations where you're running into truly novel problems. At that point your intelligence will matter very little, high or low.
- EADGBE 8y agoI just wanted to let you know you're no stranger to these thoughts. You're going through exactly what I went through with the completion of a music degree. So, with that logic; perhaps you should try your hand at teaching music. Though I didn't get into "software engineering". I'm a frontend/backend developer. How narrow are your sights set? The CS field is pretty big.
- spatulaorama 8y agoLots of great comments so far, but I would add that an alternative approach would be to find an open source project that you feel you could contribute to. Start at ground level fixing bugs and work your way up. It will look great on your resume and would be way more productive than just focusing on interview prep. If nothing else it will help you determine if you actually do enjoy programming.
- freehunter 8y agoThis is just my opinion, but when I was in OP's shoes I found this to be the least helpful piece of advice I ever got. I was lucky enough to realize that programming stressed me out early on, early enough that I could switch majors into something that I liked better. But I still wanted to be a programmer, even if it was just as a hobby. What I didn't like about being a real career programmer was the time stress, the expectation that you'll write code that works, and especially having to write code for someone else, where you're trying to translate their ideas and trying to do so correctly with limited information. Contributing to open source sometimes (in my experience) embodies all of these in one. I've found a lot of really helpful open source projects where this isn't the case and everyone is nice and helpful, but you'll also find some times where the maintainer is mean, doesn't like your code, your code doesn't fit their style, and they're going to make sure you understand that. And if you spend your time writing good code, then do a pull request just to find out someone had already beaten you to it? Oh god... I'm stressing just writing this out. Even if it's just 5% of the projects that are like this, to someone who already has crippling anxiety about their skills as a programmer, being put under public scrutiny is unthinkable. One bad experience and you might be gone forever. What actually helped me was getting a job in another field and finding ways to write bash scripts or python scripts to help, with each script increasing in complexity until I had hundreds of small programs that I designed and wrote and improved over time. Zero stress, zero expectation, but when they work it feels amazing and is a great boost in confidence.
- dolessdrugs 8y agoTC or GTFO
- your-nanny 8y agoit's hard to say whether or not the problems you solve should take less than 2-5 hours, but two pieces of advice: 1. in an interview, whether you solve the problem is less important than demonstrating how you approach solving problems. think about it like being asked to find a needle in a haystack. 2. don't think you have to score a job at a Google right out of school. there are lots of opportunities in less stressful environments. ok I lied, I have more advice... 3. as an alternative, write good quality useful software and post it to a hit repos, go answer questions on stack overflow, demonstrate your knowledge and abilities. become an expert in some area that interests you. 4. maybe you don't want to be a programmer. that's ok. your background will still give you an edge. I have a colleague that worked for a couple years as programmer and ditched it for PhD program in neuroscience (not thAt that is any less stressful). 5. consider getting professional career advice and coaching. 6. consider getting help for your anxiety. worrying whether your smart enough or how hard the problem is will keep you from actually problem solving.
- timwaagh 8y agosome companies take on juniors without these kinds of questions. you might make less money though. i messed this up so many times but still i got a job.
- ehosca 8y agoA new study found that people who believe they have built-in interests just waiting to be discovered are more likely to give up on their newfound interest when they hit the inevitable roadblock.
- bsvalley 8y agoThe good news for you is that you don’t have to become a developer with a CS degree :) a few other roles and tech companies would rather hire someone with a CS degree rather than an MBA. Look for positions like product manager, program manager, project manager, UX, QA, etc. You don’t have to apply for a software engineer role.
- paidleaf 8y ago> Are there any career paths I can pivot to that are less cognitively demanding than software engineering where this degree would be an asset? Have you thought about going into CS research or academia? CS is not about programming. One of the best CS professors I've had barely knew how to type. CS is more about math and algorithms and theory than programming. There is also technical writing or teaching. High schools are desperate for CS teachers.
- overton 8y agoAs others have said, maybe doing tricky CS-heavy coding puzzles and applying to the companies that screen for them is not the way to go. Lots of companies just need someone who knows their way around particular language and web framework. How about building out an idea for a website in Rails or Django and putting it on Heroku? Go to meetups, show it to people, network, and get advice. Not a sure thing but definitely an alternative strategy to consider. Best of luck!
- jdlyga 8y agoLook for jobs at smaller companies. Not necessarily startups, but established small companies that have been around for 10 - 15 years. The interviews are much more about culture fit and technical background than just grinding out whiteboard questions. It helps you get your foot in the door.
- antonio-ramadas 8y agoWould you feel more comfortable if doing a project at home? I read here on HN a nice advice to people that may be uncomfortable in a coding interview. Here it goes: - Ask the company if you can do a project of their choosing instead of coding at the interview. I do not mean to replace that interview, but instead of solving a problem, you would walkthrough what you have done with the interviewee. I never tried this, but I read some companies allow it.
- darepublic 8y agoWhen you say > I put all my eggs in the “being a programmer” basket and it’s clearly not for me. are you judging based on your performance on these coding tests or on your enjoyment of the work of programming. If you genuinely enjoy coding/are interested by it then maybe it is for you.
- Tmp1234 8y agoI enjoy it, but not given the failure rate I'm experiencing. If I had 50% or less failure ratio I would be ok. But as is essentially every problem is a 2-5 hour struggle where I meander to an answer feeling usually I temporarily learned why X didn't work in that given situation and not something widely applicable.
- w0rd-driven 8y agoHow do you know you're unable to be a programmer? Are you just basing that on having issues with leetcode or CTCI? I spent 2 years in college studying CS before I couldn't continue. I had just started getting into harder courses using primarily assembly and my interest faded quick. I had this incorrect assumption that developers lived in terribly small cubicles and it didn't interest me much. I had also quickly burnt out, having a job at 40+ hours a week for an ISP and going to school full time in addition was unattainable. Networking and systems seemed to be more interesting at the time and I took a 10 year detour in IT. In my IT tenure I slowly developed programs to solve business needs, starting with batch scripts and working my way up to very simple automation tools. Somewhere along the way I no longer cared about the work conditions a developer, doing the work was just too fun and I gained an immense sense of accomplishment when my creations were being utilized. Fast forward to getting my first full time developer-only position as a C#/.NET developer doing primarily Windows apps 8 years ago to now being a full stack web developer. It took being paid solely as a developer before I really felt like one and it took until probably 2-3 years ago before the imposter syndrome started to completely wear off. Where I may lack in algorithm knowledge I make up for it in understanding devops topics to have a more complete understanding of the full technology stack running the web apps I have a hand in. I believe every developer could benefit from a little operational knowledge as it usually makes debugging esoteric issues with a technology platform easier. I'd describe my capabilities as more of an integrator. I used to write every library I used but I find other developers often have more complete solutions I could bastardize into something to fit a specific use case. While the puzzles I work with primarily involve fitting packages together into solutions, the end result still involves all of the same developer workflow of debugging and automated testing. I'm not incapable of algorithm knowledge, it just bores the ever living fuck out of me. I'm extremely fulfilled in spite of having some less than enjoyable positions, so hopefully you don't let this period try to define your future. There's an amazing breadth to this field to the point of easily having analysis paralysis. Other comments give good alternatives but there are companies all over the planet paying great money for CRUD/LoB apps solving all sorts of interesting problems. There's also an amazing breadth of jobs for people with the knowledge of computing that comes from a CS degree if being a developer really isn't for you. You don't have to be in a wildly different industry but something else may involve solving interesting problems that keep you more engaged.
- Tmp1234 8y agoI didn’t expect this many responses. It’s a bit overwhelming, but I'm thankful. I’m going to post a few important pieces of information I didn’t think of posting above that should help clarify my situation and how desperate it is. I do have depression. Pretty bad one actually. I am just graduating from college at 31 because of the toll depression took on my life. I have no previous work experience because I spent my 20s just being depressed doing nothing basically. I've talked to therapists for years now and it's helped, but I've basically gone as far as that can go. My therapist and I both agree that basically as much as can be done from me through a psych has been done. My life needs to improve. Programming was supposed to be my ticket to a better life. Some people have mentioned I should move home- My home environment is extremely toxic. I’ve cut off my mother completely because she has a severe, much worse mental illness and I only talk to my dad when I need something because he has quite the temper. I managed to get out of the house only because I’m on disability for my depression. To make things worse, my dad is past retirement age. Every single day I’m not making money forces my dad to prolong his retirement as he is the only one in the family with the mental faculties to maintain a job. It should be easy to imagine how this makes him more irritable and angry while also making me feel incredibly guilty and parasitic. This fragile economic state + my age is why I don't really have time to take it easy. I was supposed to be making money yesterday. I’ve been preparing for technical interviews for over a year in reality, but intensely in the last month or 2. I couldn’t do Fibonacci recursively up until a few months ago until I looked it up and studied how the recursion was working. This is just one example. There are so many very basic things I can’t do. Finally, I can’t depend on a network or friends in any form because I have none. I am a complete pariah in the computer science community I come from and every other community I’ve ever tried to integrate myself into, basically. No one will ever refer me to any job because no one likes me and, in the case of programming, everyone knows I suck.
- st1ck 8y agoYou should stop your crippling thinking habits, like all-or-nothing thinking that becoming a programmer is only worth it if you can get into "Top 4" companies (if I read that post correctly). Or, while your family situation kinda sucks, you feeling guilty doesn't help here at all. If you had a friend in a similar situation like yours, you would suggest that as long as they are actually trying to improve their skills and get a job, there is no point in feeling guilty about not succeeding, it's counterproductive. Even if you do the puzzles 3x slower than "average programmer", but you still can do simple ones, you're much better than most of people who just can't solve them at all and won't bother to learn. I don't know what's the job market in US now, but you can probably get a job somewhere in IT to pay your bills (maybe try QA if you get no luck in dev). I mean, you got a CS degree, this already puts you in better position than many other IT job seekers.
- searene 8y agoMe too, algorithms are extremely hard for me at first. It took me a really long time to solve easy problems, and I could only solve 1~2 middle-level problems in one day. But finally, I managed to handle them by getting to know some effective learning strategies, e.g. 1. Explain to yourself how algorithms work, like a teacher teaching his/her students. 2. It's even impossible to explain to yourself when facing some middle-level/hard problems. Then I got another good idea: write everything down on papers. Finally, I found out that it was not that hard to solve these problems. There are a lot of other learning strategies. In retrospect, I think it's lucky to be an engineer. Although it's hard, tough, brain-racking, I get to know a lot of learning strategies along the road. Sometimes you wonder if others are way smarter than you, but maybe they just know some learning strategies that you don't know, and they never give up.
- petecodes 8y agoI would honestly go easy on yourself and talk to a counsellor so you can relax. Tonnes of people do degrees in one thing and then do something totally different..all you need to say is you got a CS degree but you want to do something different now.
- throwaway114433 8y agoMan, don't despair! Seriously. I think that you are just doing the wrong interviews. Applying for the next wanna-be-like Google company that asks for stupid riddles (yes, they are damn stupid - and I hate them, because they are totally unrealistic, disconnected from reality, and with a lot of pre-assumptions that in reality never happen) and "how to find the n-th element in a non-sorted set considering that there is a rat jumping up and down every 30 seconds and this has an impact on how the numbers are stored, ... in time O(logN) with space O(1) etc" doesn't say about you or your abilities. Nothing. At. All! It only says that you didn't prepare well for that sort of exercises. Can you do better? Maybe, if you [still] find the fun in it, which you don't and it seems you never did. So ditch it! That's not what you wanna do now! You know what you can do? Apply for a job. They ask you to do the codility test? Just ditch them. Don't take s* from anyone that doesn't value you as a human being. A machine can't assess how good you are. Yet. Maybe in 50 years. Not today. Right now you need to regain trust in yourself, and in order to do so, you might wanna try to start with a company that doesn't ask you to do these shy tests. I saw that some comments here mentioned a github link with some companies not following such madness. Take a look at them. And remember the rule: DON'T even think about starting the online test if all they ask is a riddle. If they are CS questions, why not. If it's a riddle, stop it right away and maybe even tell the company that you won't do it and why - they might want your feedback. Again, this is entirely up to you. I want you to repeat it in your mind until nausea: these tests don't say anything about yourself! They only say how bad the company is, as they don't value anything else but your ability to solve riddles that they find "smart". So, the question is: do you want to interview with someone that sees the real s that you can do and that you can offer, or someone that likes to assess how good you are with their interviewing process? Remember: interviewing is broken. Nobody has yet found a way to assess how really good someone is. Everyone will tell you "oh but you need to know the basics of CS". All it takes is to learn algorithms and data structures then? That's it? Studying a couple of books? That's all CS is about? And that's all an software engineering job is about? I didn't know that. All I know is that it's inconsistent with the large amount of exams I had to take to get my CS degree. Not 1, not 2. Many! And the funny thing? They even ask "behavioral" questions, thinking they can spot liars or "culturally unfit people", if you are lucky enough to pass the stupid online riddles. You know how easy it is to fake answers to show that you are such a great team player? Or that you are an ambitious person? Unless you have a psychologist with two big balls during the interviews, and even then, you might find the psychopath that knows how to fake answers. That most of the times become managers. Top level ones. Seriously - don't feel bad. You achieved a lot, you got your damn degree. Don't let these poor people ruin your life - yes, for me they are poor people, and no, I am not sorry. They just don't know how to interview, but as they are big names, or follow the methods dictated by the big names, they feel they are doing the right thing. Google admitted many times that their interviewing methods are doomed. It's nice to find that type of guy. It's to create a niche of people that feel intelligent, that need to feel smart, that need to have something in common. It creates equality inside the company, because everyone had to go through the same sh, so nobody questions "how come that this guy got hired?". It's a pool of prepackaged types. I hope you don't wanna be one of them, do you?
- teratorn 8y agoIt's very good that you've recognized that programming is not for you. Congratulations! you have a chance to save yourself. You shouldn't feel bad or try to apologize or try to "make it work" - those are all wastes of time. Get on with life, and find something you have the opportunity to excel at! Being stuck behind a glowing screen 8+ hours a day isn't ultimately rewarding or really sustainable - so find a way to make software-fiddling work for you, or get out now!
- rakamotog 8y ago1) Software Sales 2) Business Analyst 3) Consultant 4) Project Management (with some experience) 5) Product Management I've seen people with CS degree who didn't dig programming move to these roles
- mselinger 8y agoCS majors that understand programming but don't want to be programmers can add great value in a number of areas including technical support roles, consulting roles, pre-sales engineering, professional services (helping companies to implement software), product and or project management, analysts, etc. Some questions to think about - are you good with people and can you do well in a customer facing role? If not perhaps some of the more individual roles would be better.
- mcovey 8y agoFor every job I've had, I never had a coding challenge during the interview. I had one where I had a homework assignment beforehand that we discussed during the interview, and mostly just talking interviews discussing my experience etc. I also work in a small city on the east cost and make less than half of what most people here do ($65k so maybe not really less than half) so that might have something to do with it...
- chemmail 8y agoUnfortunately, today a CS degree is like a degree in art, in that it gives you the tools, but is is still up to you to make a masterpiece. If it is not for you, you can try pivoting to similar fields like maybe get a masters in information assurance or cyber security.