DEV Community

Cover image for What is the worst advice for the newbie?
stereobooster
stereobooster

Posted on • Originally published at stereobooster.com on

What is the worst advice for the newbie?

Today I was at the meetup for the newbies. (Again. After the previous time, I wrote Advice for the Newbie.) And this meetup inspired me to write this article.

Use TextEdit

I talked to one person who got the following advice: to learn CSS and HTML use TextEdit (or another plain text editor). Supposedly you will learn syntax this way faster. Adviser thinks that using modern code editor (like code or sublime) will make learning slower.

What awful advice. It is so hard to write code without highlighting, without editor which can highlight matching brackets, which automatically indent cursor when you go to the next line. It would be such a waste of time for a newbie. Even more modern editor often has syntax checker built it in, so instead of writing something, saving the file, reload the browser you would see errors right in the editor.

Why would you spend time on something that machines can do and can do much faster? Machines can check syntax, fix formatting automatically.

You need to understand syntax to write programs, but there is no reason to refuse help from the machine.

Learn Python (to learn JS)

One person asked what is the best way to learn JavaScript. And the advice was to learn Python. Wait, what? So the reasoning is following, JS is very confusing (I agree), and Python less confusing, so if you learn basics in Python you can switch to JS.

The intention is nice, but the advice is awful. A newbie will spend time learning Python, and then will switch to JS and will find it even more confusing than before learning Python, because eloquent Python is a bit different from eloquent JS. In JS you have an event loop, and async/await and awful coercion rules, which you should avoid as plague.

The better advice would be: learn JS but learn the best parts of it e.g. avoid coercions with triple equality, use let/const to avoid problems with scoping (var), use arrow functions to avoid problems with this, etc.

Maybe there is ESLint config with good practices, like eslint-config-react-app, but not React specific.

Don't get me wrong Python as a language is ok, if you want to learn Python please do, but recommend to learn Python to understand JS...

Learn webpack

The person asked how to get started with modern web development. And the advice was: sit down and write web pack config from scratch, so you would understand who bundler works and then you can write website.

Webpack is nice, but it is a very complex tool. It has so much accidental complexity exposed to end-user. Error messages are confusing. Version migrations are hard. Documentation sometimes missing. It would be so hard to learn for the newbie. I think the person will give up before they accomplish something.

Why would you do this as the first step? You can use Parcel, which doesn't require configuration - there is nothing to learn (almost nothing). Or you can use create-react-app, which hides webpack.

Webpack as the software is ok, but it is very hard for the newbie and not needed, because you can start with other tools and learn webpack later.

What is the worst advice for the newbie?

Share your examples of bad advice (at dev.to or twitter).

Photo by Ashley Jurius on Unsplash

Latest comments (44)

Collapse
 
pinguinosod profile image
David Cautin

I learned HTML in the 90s using notepad, you should too!

Collapse
 
niorad profile image
Antonio Radovcic

„Fake it until you make it“

Collapse
 
stereobooster profile image
stereobooster

Can you explain why is it bad? It is a broad advice, I wonder what specifically is on your mind.

Collapse
 
jason_espin profile image
Jason Espin • Edited

I don't agree with the first point. As someone who started off in web development using notepad / notepad ++ (especially as Dreamweaver used to add too much extra crap to your code) I feel that my base understanding of front-end approaches far outweighs that of someone who has VsCode or VisualStudio suggesting classes and approaches to someone. It is much better to gain a base understanding and find for yourself what certain CSS etc do before having it done / refactored for you by a clever IDE. At the end of the day, if the IDE is doing most of the work for you rather than assisting in refactoring then you aren't really coding you are essentially painting by numbers.

Collapse
 
stereobooster profile image
stereobooster

Dreamweaver is WYSWIG editor, it's not a code editor. Don't put everything in one bucket.

notepad++ comes with highlighting and bracket matching (don't remember about code indentation, but probably it does it too). You kind of agreeing with the first point...

Collapse
 
jason_espin profile image
Jason Espin • Edited

Not really when I explicitly mention good old notepad standard. This is also before Notepad ++ came bundled with all of that stuff. Also, just because Dreamweaver is a WYSIWYG editor doesn't mean that you can't code in just the code panel. In fact, back in the day the code window was all you would see through fear of the crappy WYSIWYG editor adding in loads of garbage markup. Either way it's beside the point. Developers, especially when learning front end which is one of the easier fields to come to terms with, should have a base understanding of best practise, conventions and indeed syntax without having a IDE hint at everything for them.

Thread Thread
 
stereobooster profile image
stereobooster • Edited

This Dreamweaver remark is almost a strawman.

Strawman - you misrepresented someone's argument to make it easier to attack.
By exaggerating, misrepresenting, or just completely fabricating someone's argument, it's much easier to present your own position as being reasonable, but this kind of dishonesty serves to undermine honest rational debate.

-- yourlogicalfallacyis

I didn't talk about code generation I talked about highlighting and syntax checking right in the editor.

I don't need to convince you - you are not a newbie.

Newbies, whenever you will hear this advice - ask if adviser uses notepad or proper text editor in day to day job and reach your conclusions.

Collapse
 
ludamillion profile image
Luke Inglis

On the plain text editor point I think some people believe that using tools like intellisense make for lazy developers who don't understand what they're 'really doing'. I fundamentally disagree, I thinks it's much more useful to know the behavior you're after than to remember the exact command/statement which will get you that. I've been a web developer for ~7 years and I still have to look up much of the finer point of CSS that I use.

This might have made a bit more sense in 'the olden days' (or for DevOps types these days) when you had to be able to hot-edit things on the server with only nano or vi to edit things on a server.

Collapse
 
cullophid profile image
Andreas Møller

Abstractions can be incredibly expensive and should only be created if you are absolutely sure it's the right thing to do

Collapse
 
vimmer9 profile image
Damir Franusic • Edited

Although I'm a C programmer and do mostly backend network programming involving raw sockets, packet capture, etc., I disagree when newcomers get advised to start from C language because they need to know how memory, cpu and whatever works at the basic lebel. That's great, but that's like saying I need to be a mechanic to learn how do drive. Since most of developments today is web dev which is done mainly in higher level languages like Javascript, there really is no need to burden yourself with all the complexities of C, C++ or any other statically compiled language with manual memory management. Unless you want to go in that direction like me for example or are attracted to embedded devices, stick to higher level languages. This is my opinion and in no way a professional guidance of any sort.

Collapse
 
canderson93 profile image
Carl Anderson • Edited

It's still amazing to me that people recommend you learn other languages to learn JS. I've seen people recommend Python, C/C++, Ruby... If you want to learn JS, learn JS damn it.

Most of the bad advice I see do things like setting up false expectations about how things are going to feel, send developers on wild goose chases (as in the python case), or putting up false barriers.

I just wrote an article on this, actually... dev.to/canderson93/7-pieces-of-bad...

I think the most damaging piece of advice that beginners get is "Come do this other course." -- When you're working with the basics, courses are basically interchangeable. Beginner concepts are very concrete. It's hard to teach a for-loop wrong.

What this advice does is lure beginners into a false sense of "the grass is greener", and the reason they're still struggling to build software is that they haven't done the right course yet. So they keep starting over again, looking for this magic course but never addressing their actual issue (which is that they haven't been learning to build software). Welcome to Tutorial Hell.

Again, more shameless plugging here, but I expanded on this idea in dev.to/canderson93/can-you-actuall...

Collapse
 
mknycha profile image
Marcin K.

Regarding learning python to learn JS: I applied for my first job with basic knowledge in Java, only to start writing in Ruby (which I have started learning once my contract was signed). I think that learning object-oriented programing is always a good point to start. But if you're sure that you want to be a front end developer, there is probably no point to take the longer path to that goal - simply start with JS.

Collapse
 
emma profile image
Emma Goto 🍙

I think for me it's "just read the docs" when it comes to understanding how a certain library/framework works. People learn in different ways, so maybe they'd be better off watching a course or reading a blog aimed at beginners.

Collapse
 
hussein_cheayto profile image
hussein cheayto

Worst advice: "Have a plan B".
When you have another plan, then you will become less motivated and efficient at work.

For example: you're working at a company X, and you've got another offer from company Y. In this situation, you will become careless whether your work was done perfectly or not, you will say to yourself, I don't care if I'm fired, I have another company that will hire me.