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

191–200 of 309 posts

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

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

They sure make it sound more complicated than it really is... I'm a self taught developer too, so I get where you're coming from :-)

In javascript I would solve it like so: "HELLO".replace(/./g, character => String.fromCharCode(character.charCodeAt() + 1))

This would result in "IFMMP".

Basically it's just a matter of shifting charcodes.

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

#192

Earlier quoted context omitted.

Since we're sharing anecdata, I'm a professional developer and still use recursion, building/traversing various types of tree data structures, and a few other CS degree requirements. That said, for algorithms (e.g. sorts, etc), understanding what the options are and trade-offs is certainly more useful than knowing how to implement them, since there's a good chance someone has implemented it already in your language o…

What percentage of developers do you think are solving “hard problems” compared to ones that are just doing CRUD apps or yet another SAAS app?

In my experience, less than 5% are actually writing algorithms and solving harder problems. I work at a consulting firm with 100 or so developers, and most seem to do "simple" stuff most of the time.

The most complex thing I have heard of is someone who wrote a kalman filter thing for some part of a nuclear reactor. To me it seemed hard since I don't understand the math, and apparently people around him was happy with his solution.

Also here in Sweden I don't think the CS algorithms are very important at all when getting a job. I have just not seen it that much, which is sane since nobody seems to really need it anyway...

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

#193
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 in programming language (coding)

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

#194
post #157

You've already gotten a lot of good perspectives. I have two tangential observations. First: a lot of applied software engineering has the overarching goal of allowing developers to quickly build useful, stable, and secure products with relatively little knowledge of complexity principles or the implementation of the underlying system. Your successful career demonstrates the achievement of that goal. This is good. Bu…

> Just stick with "fiancee" without accents, and you can't go wrong.

Unfortunately you can... I've seen many uses in modern English where people assume it is the double e at the end that makes the final vowel pronouncable in French, with no mental model of what the acute accent is there for nor what the second e signifies, and hence described their male fiancé as a "fiancee". After all, fiancé (male) and fiancée (female) both sound the same in English, and if you spell "fiance" correctly but without the accent, it looks like it should be read as "fee-awnss".

In all though, I think this is a useful metaphor for the OP's question: as a working programmer, creating value for a business by building applications without having to understand what's going on inside the computer, he should be able to expect that his tool (editor/development environment) would not only autocorrect the spelling of fiancée for him, but in case of doubt perhaps pop up a wizard to politely enquire whether he was engaged to a man or a woman and adjust the output accordingly; meanwhile his betrothed is busy learning the rules of French grammar and orthography and asking him to help her understand how and why his tools work the way they do - something which he is, quite rightly, oblivious about.

Of course, if I found myself in the same position, and had the time to spare, I would try to work through the same course materials alongside her because my curiosity would see it as a fantastic opportunity to learn the CS principles that I never picked up in college; then when she or I got stuck on something, I could add the contextual experience I'd picked up from years of 'surface level' business programming to gain a different perspective on the course content and hopefully fill in what's missing. Just like, for example, if I had years of truck driving experience I may have a little more insight into engine maintenance than someone who doesn't, but it doesn't make me an expert in that area.

Failing that, I'd explain honestly that our two disciplines have nothing in common other than vaguely being "connected with computers", then try my best to help her out in the same way I would if she was learning law or history or chemistry - just keep asking questions about the parts she does understand, the precursors to the problem she is up against, then try to reason it out loud with her and more often than not, the act of explaining in words the prior steps will help her to crystallize some insight in her own head that will fill in the gaps.

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

#195
A decent CS degree, like that of MIT matters a lot.

I could give an example. Once upon a time a stumbled upon this classic article (which I re-read sometimes to feel better):

https://eev.ee/blog/2012/04/09/php-a-fractal-of-bad-design/

When I read this for the first time I have been literally shocked by sudden realization that I have coded some stuff in PHP but never knew it is such a crap.

It also taught me that I literally know nothing, that I am merely a stupid coder, not a programmer, so I undertook a serious study of CS fundamentals to be able to write an article like this in the future.

Now, after a few years of studying, I know a half-a-dozen of languages and I know crap when I see it. Ironically, what is going on with the Node ecosystem puts PHP3 into a shame. But it is natural, because most of JS coders have no CS background. People with CS background sometimes produce gems like Go or Erlang, while "mere coders" always produce things like PHP, J2EE and npm.

There is only one thing that I regret - it could save me so much time by not reading bullshit on the web if only I could find the right books (like Programming Erlang, Haskell School of Expression or On Lisp) and right courses (like Dan Grossman's and 6.001 2004 - the last course in Scheme) first. There is a huge, qualitative difference between a well-written gems like these and fucking crap some narcissistic idiots post in their blogs.

I have found the right books and the right courses by literally swimming thorough the sewers for years. A decent school will teach you the right principles, instead of irrelevant details, in ML or Scheme right from the beginning.

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

#196

Earlier quoted context omitted.

>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! Except when it comes to getting a job. Forget any of the rest of your skills, because we all know the only thing that matters when interviewing is an ability to recite CS algorithms out of memory and solve obtuse puzzles while pretending you've never seen them.

Except when it comes to getting a job. Forget any of the rest of your skills, because we all know the only thing that matters when interviewing is an ability to recite CS algorithms out of memory and solve obtuse puzzles while pretending you've never seen them. I’ve been a professional developer for 20 years and have never had to recite CS algorithms or solve obtuse problems. My last three jobs I had to whiteboard an…

> I’ve been a professional developer for 20 years and have never had to recite CS algorithms or solve obtuse problems.

I'll see your twenty and raise to 38 on the same basis. In fact no one I know has ever had to solve the algorithm problems that seem so common now (in the US at least). The nearest I came to it was in a previous career as an electronics engineer where the interviewer gave me the circuit for a simple common emitter amplifier and asked me to describe it's characteristics. He was very apologetic afterwards and said that experience had taught him that recently qualified electronics graduates often had so little practical experience that he could not afford to employ them as it took them too long to get up to speed; so he used this simple test, and it was very simple, to sort out those who could be gently shown the door immediately to avoid wasting his and their time.

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

#197

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

seconding this, creating value is orthogonal to knowing CS. see the creator of homebrew, Max Howell infamously failing to invert a binary tree in an interview: https://mobile.twitter.com/mxcl/status/608682016205344768?la...

I read it, tried it out and it didn't took me long to understand and solve that issue.

If you hack around for a long time and you never ever felt the need or motivation to understand very simple tree algorithms, okay. But don't rant when a company like google expects that from you.

He also answered, after a few years on a website about it:

https://www.quora.com/Whats-the-logic-behind-Google-rejectin...

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

#198
You now see that you can't do something and it is very close to what you do.

Act on it.

But if you don't, at least dont wonder why you are doing what you are doing and perhaps not something else. Or why you might not get into some other companies or or or.

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

#199

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…

That’s a good point. Now, how do you find interesting job which involves computer science skills?

Games industry. I work as a C++ programmer on the engine team and I have to think about really strong CS fundamentals almost daily - like, not many other industries care about performance so much that you care about aligning your variables to squeeze everything out of your cache, or have a strong opinion about kernel vs user level mutexes because 15ns vs 5ns locking time is actually critical and your algorithm is going to fall apart if you miss the next CPU quantum. Especially with programming for consoles, your CPU architecture knowledge needs to be really top notch, and I would say doing a masters degree in CS has helped a lot.

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

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

I have to agree with you. Especially the ceasar cipher example is literally about following the steps, everything is outlined in an almost step-by-step fashion. The only part of the exercise that might be new to OP is programming in C - but the algorithm itself is stupidly well explained and the bullet points literally tell them what to do. It's as if they read the first paragraph and decided it's some arcane voodoo magic so it's not worth reading any further.
Post reply on HN