Live data from Hacker News

Advice to a novice programmer

blog.plover.com

131–140 of 158 posts

Re: Advice to a novice programmer

#131

I really have to disagree with the disparagement of vim/scp at the beginning. It's a bit slower to start if you begin with command-line tools, but the dividends payed out by learning the standard command-line utilities are huge. Learning the command-line utilities means you have the tool-set to build your own tool-set; since it's a lot easier to using CLI tools as building blocks for larger tools. At both of the last…

To your 2nd point. Why shouldn’t CS students learn how people build software?

Computer science isn’t separate from actual programmers and some knowledge of the day to day jobs of programmers could inspire advances in Programming Language Theory or VCS

Re: Advice to a novice programmer

#133

Earlier quoted context omitted.

If you can't afford to pay for an IDE then your employer should get out of software development. That's a hard fact. Any organisation that can pay a salary or a contract rate, pay for a computer for the person to work on, pay for the hosting of their service, well they can also afford to pay for the tools that the developers need to do their job. And if they really can't, as I say, they should stop doing development…

Developers clearly don't need Jetbrains in order to work. Millions and millions work every day without it.

Yes but they’re so nice to use. It’s the integrated part that matters. The collection of tools just play well together.

Re: Advice to a novice programmer

#134

Earlier quoted context omitted.

It depends on what you're doing. This article is more about programming than other kinds of computery work. In the industry I work in (openstack devops/gitops, running a large fleet of ubuntu machines), using Vim isn't a flex, it's just taken for granted that you can and will use Vim at least some of the time. It's weird when I read threads like this and people treat using Vim as some kind of weird flex. It feels lik…

You're not selling it to me. For simple admin tasks, Micro is totally fine. For actual programming where I really want the full power of an advanced editor, VSCode has all the properties you listed except arguably lightweight, though even there VSCode itself is pretty lightweight; it's just the heavy LSP servers that bog things down. I obviously don't see Vim as a flex. Maybe a misguided flex.

It’s not VIM specifically, it’s the vim way, a language for editing texts. Actions are atomic and composable. And then you can add your own commands.

You could probably use VIM inside VSCode but the latter does not expose the necessary API. What you got instead is a very simplified version. Emacs does and evil-mode is a very good vim.

Re: Advice to a novice programmer

#135

Earlier quoted context omitted.

can you go a full 8 hour work day without touching the mouse? edit: can you easily pipe the entire file through grep or awk, or insert the contents of the output of curl or jq?

I'm confused by this. Do you... not own a mouse? In my line of work, the actual editing of code is at most 10% of my time, and the remaining 90% is spent deliberately thinking through the actual algorithms and backend work. Piping to CLI tools is easily done through Jetbrains macros.

Vim allows the editing to be thinking.

Re: Advice to a novice programmer

#136

I really have to disagree with the disparagement of vim/scp at the beginning. It's a bit slower to start if you begin with command-line tools, but the dividends payed out by learning the standard command-line utilities are huge. Learning the command-line utilities means you have the tool-set to build your own tool-set; since it's a lot easier to using CLI tools as building blocks for larger tools. At both of the last…

Are the dividends that significant over using CUA shortcuts* that usually are available in most other places?

I've done some reading and I'm considering diving into Vim, but I'm not sure, at least without much experience the surface level feels achievable by 2 keystroke combos and the mental overhead of getting used to using vim style bindings in some places but not others feel like exactly the kind of friction the article is trying to avoid

* Like navigating using Home, End, PgUp/Dn, moving between lines by Ctrl+arrows, Ctrl+X'ing for yanking etc

Re: Advice to a novice programmer

#137
post #8

I have a whole blog, with 100s of posts, about what I feel should be taught to new devs but is not. https://letterstoanewdeveloper.com/

Ironically, it's not realistic to ask a newbie to read hundreds of posts or to know which ones to look at. Are there 2-3 you'd recommend starting with?

Fair enough. There's a 'start here' sidebar with some of the most popular and best advice.

Re: Advice to a novice programmer

#138

I really have to disagree with the disparagement of vim/scp at the beginning. It's a bit slower to start if you begin with command-line tools, but the dividends payed out by learning the standard command-line utilities are huge. Learning the command-line utilities means you have the tool-set to build your own tool-set; since it's a lot easier to using CLI tools as building blocks for larger tools. At both of the last…

Just to stay with the analogy: For something to "pay dividends", you need to have some starting capital first. =) It's much slower to gather the capital when you're starting with zero and you spend weeks just fighting the tools. It's a lot more effective to gather some capital with easier tools (IDE + press F5 to run) and then move in to the low level stuff.

This is a great take. Just like learning anything else, getting context and foundational software engineering knowledge helps accelerate further learning.

I would never counsel a beginning programmer to learn vim first, but after 6 months or so when they have their bearings, it can help text editing speed immensely. Is that the biggest problem a new dev has? It depends, but probably not. Their time is probably better spent getting up to speed on software engineering concepts and practices.

Re: Advice to a novice programmer

#139
post #47

Speaking of using sharp tools…. I really don’t get the love for VSCode. I’ve used Jetbrains for years and last week gave VSCode a really solid try. Man what a mess. Everything is a plug-in, plug-ins are inconsistent, getting basic things to work requires a tsunami of plugins. Everything feels half baked and duplicated and needing updates or abandoned ugh. Nothing feels professional because everything is a plug-in bui…

This is fair for certain languages like JS or Java (IntelliJ is amazing), but not as much for less popular languages. I started learning Rust a few years ago, where the Rust plugin for Jetbrains IDEs was still in its infancy. Switching to VSCode specifically for rust-analyzer was a great decision for me, due to the amount of tooling included. VSCode is popular because it is easy to learn for a beginner and shares muc…

JetBrains released an LSP integration for their IDEs sometime ago: https://blog.jetbrains.com/platform/2023/07/lsp-for-plugin-d... Yes, it’s still new and somewhat buggy, but I am using Zig LSP plugin and it works pretty good.

Re: Advice to a novice programmer

#140
post #76

Earlier quoted context omitted.

I don't think he was shitting on command line tools; he was shitting on the remote machine his child was having to use, which was slow and unreliable. > Also big disagree on the final statement of the article. CS is not a vocational major, nor should it be. There are plenty of good post-secondary schools that focus on writing code and the tools you use to do so; CS curricula should not be focused on producing program…

Software engineer training without engineering training is just programming training. Doing a CS degree does not automatically entitle one to call themselves an engineer. You're a programmer, not an engineer.

This discussion has been hashed out many a time. While they may not be an engineer by designation (PEng), the word is used often enough to refer to programmers that it is pedantic to reiterate the fact that they aren't "real" engineers.
Post reply on HN