HACKER Q&A
📣 pshirshov

A good IDE/environment for programming beginners?


I'm extremely unhappy about how people are supposed to learn programming nowadays. Not software engineering even, just the old good programming.

I noticed that too often I meet people who tried to took some courses, spent a year or two studying various subjects but still being unable to solve even simplest problems and not knowing even the most basic CS/programming concepts.

Yesterday I've met a person who spent almost two years on a Java course, trying to become a programmer/engineer. This person is extremely dissatisfied that they are still unable to pass any interviews and/or coding challenges. That's not suprising. This person doesn't know what is linked list, recursion, computational complexity, hashmap, binary tree, even the difference between value and reference - nothing. They are motivated and tried to do some self-education too, solve problems on HackerRank - but still nothing. There is an interesting anecdote about HackerRank. This person solved a challenge, asking to merge two sorted lists into one list, by concatenating them and then calling library function to sort it. The problem is that HackerRank accepted this solution as valid. Which in my point of view is totally unacceptable (pun intended) and kills all the pedagogical idea behind the problem. This challenge was supposed to motivate people to read about computational/memory complexity, reinvent/understand mergesort, read about the historical background and internalize the knowledge which is still very useful in our days. But this won't happen because of the very dumb test suite implemented by an idiot.

None of the adults I know were able to successfully learn programming/engineering at a level which would be enough to get a job/internship if they go the "modern" way, when people learn how to use a language and its standard library but ignore low-level concepts and classic data structures and alghorithms. There were some success stories from Arduino hobbyists though.

So I see a pattern. Usually those who started with low-level languages are able to get farther and they have better understanding of the things. Those who started with typed languages were more successful too. But they were extremely well motivated and they were able to somehow overcome the entry barriers. In our days it's extremely hard for a regular novice to follow this way. It wasn't always like that though.

So, I've tried to understand what advice I may give to a regular novice who wants to become a programmer and, later, an engineer with a job.

I still remember how easy was it to learn programming with QBASIC, Borland Turbo Pascal and Borland Turbo C.

The feedback loops were very short, it was possible to easily install the IDE, run it, type something and get the output.

The text is bit too long for HN, so the rest is here: https://telegra.ph/Ask-HN-A-good-IDEenvironment-for-programming-beginners-04-30

Any thoughts?


  👤 GianIsAlive Accepted Answer ✓
The post sounds a bit emotionally charged... I've met people who can code and optimize SGD from scratch, but never wrote linked list more than once or twice in their life. I've also met people who are so proud of their algorithm and data structure knowledge, they tried to use it everywhere, like connecting instances in a linked list, which killed efficiency. If anyone self taught is reading this, don't be discouraged, keep learning and you'll get there, some of the best developers I know were self taught.

👤 zubairq
Yazz Visual Javascript on the Mac App Store - https://apps.apple.com/us/app/visual-javascript/id1551448939...

👤 arh68
> Java ... are easy enough to setup (thanks to JetBrains) but ... there are no good books teaching novices the CS foundations using these languages

Really? Is there no good Java book?

I can't actually name one off-hand, but surely... even if it covers only Java 8


👤 PaulHoule
I can’t click on your link because links in Ask HN question aren’t clickable. Please submit as an ordinary article.

👤 throwawaysalome
Any thoughts?

Yes, stay in your lane.