Live data from Hacker News

Ask HN: I've been a programmer for 6 years, and I can't solve basic CS problems

news.ycombinator.com

1–10 of 309 posts

Ask HN: I've been a programmer for 6 years, and I can't solve basic CS problems

#1
Hi HN.

My fianceè is currently enrolled on CS50 Introduction to Computer Science online.

I'm a programmer and have been for around 5-6 years, I started with VB.NET since I first started learning, then progressed onto Web Development at a large agency for 4 years (PHP, JS, React) and I'm now back with VB.NET.

I've worked with a few "complicated" (they were to me) projects in the past, but now I'm being tasked with guiding my fianceè with this course.

Some of the problems which she is expected to solve are pretty simple problems, but I just can't seem to get the hang of any of them on my own.

I would have thought that my last 5-6 years of experience would at least help me here. I can point out basic syntax errors and help with debugging, but when it comes to me trying to solve these problems on my own, I don't know where to start.

It makes me question how I was hired in the first place.

Sorry for the rant, but I was just wondering if anyone else felt like this.

Re: Ask HN: I've been a programmer for 6 years, and I can't solve basic CS problems

#4
sure, for the first 20 years that I was a programmer, I really couldn't wrap my head around algorithms at all. It took concerted effort (I'm a slow learner) and repeatedly reading books, talking to people, writing code and having it reviewed before I felt comfortable with hash tables, etc.

Re: Ask HN: I've been a programmer for 6 years, and I can't solve basic CS problems

#6
i think a lot of the problems you are expected to solve in a CS course are things that are already provided or have workable alternatives in higher level languages. VB and javascript already provide for many different data structures where you might need to know them and be aware of them in the lower-level languages

Also due to the data structures provided in higher level languages you are often less aware of how long something will take to run which i find is a big part of many CS courses

Re: Ask HN: I've been a programmer for 6 years, and I can't solve basic CS problems

#7
Programming has become so generic activity that the word "programmer" tells very little of what people are doing and what their skills are.

From the description of what you have done, you are working in "software assembly" type programming job. You clue things together and get the job done. You know the API's and some standards. Most of the programmer jobs are what you are doing. It's very different from the classical algorithmic programming type jobs and programming.

People who build machines have wide variety of job descriptions: mechanic, welder, machinist, mechanical engineer, and so on. But somehow it's assumed that if you can do "web development", you can do do it all.

Re: Ask HN: I've been a programmer for 6 years, and I can't solve basic CS problems

#8
There's a common belief that you can learn everything you need to program through practice. And that is true in the sense that you can eventually learn how to write working programs. But understanding the theory behind programming and algorithm design is a very different thing.

As a concrete example, while in high school I participated in programming competitions. One of the questions required writing a parser for a context-free grammar. Being completely unaware of recursive descent parsers I managed to fudge together an awful program with probably disgusting algorithmic complexity. After taking an "intro to CS" course (as an extra curricular activity), I immediately knew how to write basic parsers for CFGs correctly. It's not that I was suddenly much better at programming, it's that I now had learnt some theory that helped me know how to approach a problem.

You can't really "pick up" algorithms. You have to learn it through some kind of study (self-study is also acceptable). There are thousands of man-years that have been spent on algorithms. It's probably not a good idea to start out from scratch. In this respect, I would argue that programming is far closer to mathematics than engineering.

Re: Ask HN: I've been a programmer for 6 years, and I can't solve basic CS problems

#9
Hah, you must be the one who wrote the system I’m now rewriting.. :) just kidding. I went through the same thing- I thought I was a pretty coder too till they hit me with the towers of Hanoi problem in college. When I saw how simple the solution was to that problem, the scales fell from my eyes!

Re: Ask HN: I've been a programmer for 6 years, and I can't solve basic CS problems

#10
Think of it this way: application development, software engineering, and computer science (and data science and ... etc) sometimes use the same tools but are all different disciplines.

Universities traditionally focused on Computer Science and their graduates would often need a lot of grooming before they could really be independently and reliably productive in the commercial words of application development or software engineering. Importantly, it was less grooming than someone who studied something like English or Sociology or History, but it was still a different discipline than what the job market demanded.

You jumped into the job market directly. You learned to develop applications, research API's, study trends, and participate as a team member in development workflows under commercial pressure. You don't know how to compose and compare sort functions for abstract sets of N elements because you never needed to. You just use sort().

And that's okay! Inventing new algorithms with theoretical significance is not your job! You have other skills and they're of much more immediate value!

Post reply on HN