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

201–210 of 309 posts

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

#201
Application developer is to computer scientist like car mechanic is to physicist.

You've been conned into thinking Computer Science prepares for Software Engineering. That's not true.

While you may need some Computer Science knowledge from time to time (and in fact there are some rare jobs heavy in Computer Science knowledge) almost all typical development and especially entry level software engineering jobs are all about knowledge and skills that are not taught at school.

You've spent past few years learning other important skills. You don't need to know how numbers are divided, you don't need to know how cuckoo hashing works and you don't typically implement A* from scratch to get your company's systems implemented.

I don't want to say it is not helpful to know these stuff. It certainly is. But to spend couple of years of your life getting in debt instead of earning money and useful experience -- that's something everybody has to ask themselves if they think to get into Computer Science as a way into software engineering.

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

#203
Who cares? I can't remember the trigonometry I studied in school even though I can still work a calculator.

It's useful to understand the basics so you develop an intuition, but don't stress if you can't actually solve the problems. You almost certainly won't need to use them in your career anyway unless you work in some incredibly niche areas.

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

#204

Application developer is to computer scientist like car mechanic is to physicist. You've been conned into thinking Computer Science prepares for Software Engineering. That's not true. While you may need some Computer Science knowledge from time to time (and in fact there are some rare jobs heavy in Computer Science knowledge) almost all typical development and especially entry level software engineering jobs are all…

> Application developer is to computer scientist like car mechanic is to physicist

:) I made the exact same comparison in my comment.

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

#205

Programming isn't the same thing as computer science, in the same way that writing isn't the same thing as journalism. Writing code is the easy part. It's tedious, requires lots of practical knowledge and troubleshooting skills, but is for the most part a straightforward exercise. Computer science is about the theory. It involves solving problems in the abstract, using (and in some cases creating) new conceptual tool…

Exactly. Computer Science is much, much more than just programming. Knowledge of many aspects of CS can certainly useful to programmers (depending on what they're programming), but it's perfectly possible to be a very competent programmer while having massive holes in your understanding of CS.

And for most programming jobs, real programming experience is far more important than a broad understanding of CS. With a solid grounding in CS, you'll be able to tackle more complex issues and maybe be more flexible to switch to completely different IT-related careers, but for most jobs, it's not necessary at all.

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

#206
post #204

Application developer is to computer scientist like car mechanic is to physicist. You've been conned into thinking Computer Science prepares for Software Engineering. That's not true. While you may need some Computer Science knowledge from time to time (and in fact there are some rare jobs heavy in Computer Science knowledge) almost all typical development and especially entry level software engineering jobs are all…

> Application developer is to computer scientist like car mechanic is to physicist :) I made the exact same comparison in my comment.

Have not read your comment but it felt very natural and was first thing that came to my mind.

Car mechanics like software developers require a lot of tacit knowledge to be good at their jobs. It all feels like riding a bicycle, intuitive. It is difficult for me to understand a person that does not understand how computers work but when confronted by a person that does want to know it is difficult for me or even impossible to figure out where to start. I think that it is because I don't even have the experience being taught how things work, all my experience is about figuring it out by myself.

Same goes for mechanics. When asked "how do you diagnose any particular problem with a car" you will not get an answer because diagnosis is skill in itself and it is very intuitive and hard to describe.

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

#207
post #47
post #41

Earlier quoted context omitted.

Is there a particular part of these problems that is stumping you? Perhaps breaking them down into smaller sub-problems? Where is it something else? Based on your original description I was expecting something more heavy on straight CS theory. “how do you sort an unordered binary tree in place“ kind of thing.

I've never been so great with figuring out loops to iterate over things and the like. And some of the questions being posed (which are all expected to be solved in C) are a little tricky for me to figure out on my own without some of the niceties which I have been exposed to in higher level languages. Perhaps the hardest of these was the Credit Card Validation example. I was stuck for such a long time on trying to fi…

From this description it seems you have problems with implementation.

You probably lack in "coding"(maping solution to code) department - it's totally normal in language you don't work in day to day. You are probably less skilled in implementing simple, lower level abstractions - understandable given your background.

I have more exp than you - recently I was helping friend with python ML code - it took me 40 mins to code 20 lines. I don't feel bad at all, because even though I knew solution, to write it in python I had to google for each line and read docs to know range handling, dsl of libs, array comprehension syntax, lambdas etc.

Good news is that it's easy to get proficient fast by doing such exercises. I can recommend codewars.com

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

#208
post #51
post #43

Earlier quoted context omitted.

The examples you gave are very helpful in giving more context. I'm guessing that you're productive in your job, because you know the details of how to use language ABC, framework XYZ and the various patterns for solving common industry problems using ABC and XYZ. The part you seem to be weak in, is abstract problem solving. Ie, coming up with a pseudo-code algorithm that will accomplish some abstract goal that you've…

Your first paragraph hits the nail on the head. This is exactly me. Thank you for your reply. I do intend to work further on my skills in order to get better!

Take a look at "How to design programs"[1]. It teaches a systematic way of attacking/solving problems.

[1] https://www.htdp.org/

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

#209
post #31

Thank you to everyone who has replied to my rant. I felt of low value for not being able to provide immediate help for most of the problems that she's being taught to work on. Some of the examples (since some of you were asking for them): https://github.com/cs50/docs/blob/master/_pages/2018/x/psets... https://github.com/cs50/docs/blob/master/_pages/2018/x/psets... I realise that I may have written my original post a…

I'm sorry to say this - but given this examples I wouldn't hire you if you can't solve so simple stuff. You have probably problems with text comprehension because I don't know how you can't solve it. It's not coding that's needed - you should be able to do it on "paper". What are you really struggling with? 1) understanding problem setup (reading) 2) coming with solution to problem (search) 3) implementing solution i…

It might sound a little bit too harsh, but I totally agree with you. Furthermore, provided examples are missing search step – there's no need to come up with solution, because solution is explicitly specified in task description.

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

#210

Programming isn't the same thing as computer science, in the same way that writing isn't the same thing as journalism. Writing code is the easy part. It's tedious, requires lots of practical knowledge and troubleshooting skills, but is for the most part a straightforward exercise. Computer science is about the theory. It involves solving problems in the abstract, using (and in some cases creating) new conceptual tool…

I think this is a bit of a false dichotomy. There are plenty of "truly" interesting software engineering jobs, no CS required. There is a lot that goes into designing a good CRUD app (yes, I said it). There are many trade offs, different basic architectures to choose from, different libraries, different design patterns -- all which have pros and cons to be weighed, based on the needs of the project (I speak as someone who makes spends a lot of time doing native Android CRUD work).

It really annoys me when people say "oh that stuff is so trivial, you need to be doing low level C++ optimization or whatever to be doing anything truly interesting or important." It's "Revenge of the Nerds"-type BS. But the truth is that jobs that "only require programming skills" can certainly be interesting if you take it seriously, and treat your craft with the respect it deserves.

Post reply on HN