Live data from Hacker News

Ask HN: Got a CS degree, but I’m unable to be programmer. What can I do?

news.ycombinator.com

301–310 of 324 posts

Re: Ask HN: Got a CS degree, but I’m unable to be programmer. What can I do?

#301
post #119

I 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…

Can't agree with this enough.

Over 15 years professional experience here, master's degree in CS, and I often struggle with whiteboarding. Looking for a new job now and some of the questions I've been asked:

1. Overlapping maximal interval sets (https://www.geeksforgeeks.org/find-the-point-where-maximum-i...)

2. Print a matrix in a spiral form (https://www.geeksforgeeks.org/print-a-given-matrix-in-spiral...)

3. Implement setInterval using setTimeout (recursion)

4. Shorten a string of repeated letters (dddbbbaa) into numerical format (3d3b2a). also write function to reverse this process

5. Given this JSON input, write an API in NodeJS

6. Write an algorithm to convert decimals to Roman numerals (https://www.geeksforgeeks.org/converting-decimal-number-lyin...)

7. Convert from prefix to postfix notation (https://www.geeksforgeeks.org/prefix-postfix-conversion/)

I could go on and on. So stupid. How does answering any of these on the fly signal ability as a programmer?

The take-home tests are the least offensive to me, because at least they simulate what it's like to work on a real project (somewhat).

The HackerRank.com tests aren't any better than live whiteboarding -- why can't I look stuff up (they disable copying and pasting)? Are you not allowed to look stuff up at a real job?

All these stupid questions implicitly assume the same thing: the most important developer skill is memorizing a large corpus of algorithms to obscure problems.

Trust me, it's not.

It'll probably take one of the FANG companies to start de-emphasizing this nonsense before everyone else stops mimicking them.

Re: Ask HN: Got a CS degree, but I’m unable to be programmer. What can I do?

#302

I 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…

You 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.

Re: Ask HN: Got a CS degree, but I’m unable to be programmer. What can I do?

#303
post #140

>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…

Yes. Very much so.

Great!. 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.

Re: Ask HN: Got a CS degree, but I’m unable to be programmer. What can I do?

#304

I 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…

For 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: L…

This is what I tried, recursion taking care of puting the simplest cases first. I haven't checked the solution. I think this kind of problem is like a state machine. In each call of the recursion the length of the pattern or the lengh of the string should decrease, so finally one get to the easy cases of length in (0,1,2).

This kind of problems are designed to test you can define a grammar and apply recursion. Another problem with the same flavor could be to evaluate string expressions like "3+25" using a grammar. My one-hour solution (not checked). But I think I have done similar problems.

         def pat(s,p):
    ...:     if s == "":
    ...:         if len(p)>1 and p[1] in "?*":
    ...:             return pat(s,p[2:])
    ...:     if p == "": return s == p
    ...:     if len(p) == 1:
    ...:         if p == "*": return True
    ...:         return s == p
    ...:     if len(p) == 2:
    ...:         if p[1] == "?":
    ...:             return s == p[0] or s==""
    ...:         if p[1] == "*":
    ...:             if s[0] != p[0]: return False
    ...:             if s == p[0]: return True
    ...:             return pat(s[1:],p)
    ...:     if p[1] != "?" and p[1] != "*":
    ...:         return s[0] == p[0] and pat(s[1:],p[1:])
    ...:     if p[1] == "?":
    ...:         if (s[0] != p[0]):
    ...:              return pat(s,p[2:]))
    ...:         if (s[0] == p[0]):
    ...:             return pat(s[1:],p[2:]) or pat(s,p[2:])
    ...:     if p[1] =="*":
    ...:         if (s[0] != p[0]): return pat(s,p[2:])
    ...:         return pat(s[1:],p) or pat(s,p[2:])
    ...:
    ...:

Re: Ask HN: Got a CS degree, but I’m unable to be programmer. What can I do?

#305

I 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…

For 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: L…

In one of your comments you say you have improved a lot in two months or so, so perhaps you need a little more practice and I think you could improve a lot more (less time for solving puzzles and writing better code). Anyway, I have tried to solve some of the puzzles. Perhaps other people in this thread can give more valuable information about your coding style. I wish you the best.

Sum of cubes:

  sum(i**3 for i in range(n+1))
findMedianSortedArrays using Haskell:

  let  m a [] n = a !! n
       m [] a n = a !! n
       m (x:_) (y:_) 0 = if x

Re: Ask HN: Got a CS degree, but I’m unable to be programmer. What can I do?

#306
post #4

It'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 se…

>> 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.

I am actively interviewing right now. Also interviewed at FANG companies. This is absolutely 100% correct. Those people don't give shit about thought process as much as they do about correct bug free solution under 15 minutes. If you take even JUST 2 MINUTES to think they start looking at you suspiciously and reject you in their mind. This is really a fucked up situation.

Re: Ask HN: Got a CS degree, but I’m unable to be programmer. What can I do?

#307
post #4

It'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 se…

My view has been they are looking for people with high IQs exclusively. Whiteboard interviews cut out people who are not even intelligent enough to memorize solutions and algorithms while also accepting people smart enough to come up with solutions to tough problems they haven't seen before. It seems given how much I struggle I may not even fit in the memorize 300+ leetcode category. I'm very interested in this divid…

>> high IQs exclusively

I agree and I think its illegal to do so. Its a form of discrimination so they have disguised it as a "coding challenge".

Re: Ask HN: Got a CS degree, but I’m unable to be programmer. What can I do?

#308

Earlier quoted context omitted.

For 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: L…

This is what I tried, recursion taking care of puting the simplest cases first. I haven't checked the solution. I think this kind of problem is like a state machine. In each call of the recursion the length of the pattern or the lengh of the string should decrease, so finally one get to the easy cases of length in (0,1,2). This kind of problems are designed to test you can define a grammar and apply recursion. Anothe…

Your solution looks better than mine. Is there anything you've gleaned from the leetcode examples I posted?

Re: Ask HN: Got a CS degree, but I’m unable to be programmer. What can I do?

#309
post #119

I 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…

+1 to this. Similar story for me. Although I wont go so far as saying I am a rockstar I do have a reputation for building solid, maintainable, reliable code that works even though I have struggled in the high-pressure whiteboarding interviews (I'm currently at a company that is well-known/infamous for whiteboarding interviews too). There are different roles other than "software engineer" that are programming based, e…

I am finding the same kind of trouble on my job hunt what kind of roles should I be looking for?

Re: Ask HN: Got a CS degree, but I’m unable to be programmer. What can I do?

#310

Earlier quoted context omitted.

As someone with dreadful experiences of the metal health system, I think the very last thing you want to do is see a psychiatrist. Psychiatrists are expensive and look at brain chemistry, more than likely you’ll end up on some sort of medication which you likely don’t need. By all means see a counsellor or a psychologist, but unless you have deep psychological issues where you are getting to an unbelievably unbearabl…

Was covering the bases as I'm not familiar with the US primary care system - here in Australia a general practitioner can refer you for CBT and start antidepressants themselves, but I'm not sure how that extrapolates around the world. For what it's worth, antidepressants have a very valid part to play in the treatment of depression, as do various other psychopharmacologies. I've taken medication for performance anxie…

I’m an Australian.
Post reply on HN