Live data from Hacker News

Advice to a novice programmer

blog.plover.com

71–80 of 158 posts

Re: Advice to a novice programmer

#71

Earlier quoted context omitted.

I still don't really understand what Vim users see in it. They always seem to claim that you can edit faster... and sure you can if you're comparing with Notepad++. But modern editors have multiple cursors and tons of useful editing tools that let you be easily as fast with much less pain.

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.

Re: Advice to a novice programmer

#72

Earlier quoted context omitted.

What do you mean “develop inside it”? Here’s a link on doing it with python https://www.jetbrains.com/help/pycharm/using-docker-as-a-rem...

Note that this feature is only available in the Professional (that is, paid) version. And since VS Code can do it for free, it has the upper hand in money-tight environments.

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 because they are deeply unserious.

Re: Advice to a novice programmer

#73

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…

[dead]

Re: Advice to a novice programmer

#74

Earlier quoted context omitted.

I still don't really understand what Vim users see in it. They always seem to claim that you can edit faster... and sure you can if you're comparing with Notepad++. But modern editors have multiple cursors and tons of useful editing tools that let you be easily as fast with much less pain.

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?

> can you go a full 8 hour work day without touching the mouse?

No but I don't want to because mice are a great invention that make lots of tasks faster. Why artificially limit yourself by banning a mouse? Do you really browse the web without a mouse?

> can you easily pipe the entire file through grep or awk, or insert the contents of the output of curl or jq?

Yes?

    cat file | ...
    curl ... | pbcopy
Anyway those are super rare tasks! Why would I pick an editor based on being able to do things I want to do a couple of times a month at the absolute most?

Re: Advice to a novice programmer

#75
post #70
post #65

Earlier quoted context omitted.

That's just the python interpreter inside Docker being called from outside Docker. That's basically a configuration to call: docker exec -i container_name python3 myfile.py What VSCode does is much more powerful. It's as if you opened VSCode from inside the container. It works because VSCode installs a server inside the container so the world is now your container and you get full isolation, precise tooling and other…

I believe that IntelliJ can do this for remote servers. It installs an IntelliJ agent on the server and it’s like remote development, your real IDE becomes a lightweight client of it.

This?

https://www.jetbrains.com/help/idea/remote-development-a.htm...

JetBrains Gateway is a lightweight launcher that connects a remote server with your local machine, downloads necessary components on the backend, and opens your project in JetBrains Client.

Re: Advice to a novice programmer

#76

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…

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.

Re: Advice to a novice programmer

#77
> When you start the next project, start it in VScode in the beginning.

That's just pushing your preferences onto the kid.

> And maybe set aside an hour or two before you start in earnest, just to go through the VSCode tutorial and familiarize yourself with its basic features, without trying to do that at the same time you are actually thinking about your homework. This will pay off quickly.

Going through a tutorial works for Vim also.

> copying files back and forth with scp

Wait, why back and forth? If you consistently edit here, and build there, it's unidirectional. A simple update script will do the scp. Copying back and forth will cause confusion. Where is the latest file, remote end or local? Oops, I made parallel changes to both, now what?

Good advice to the novice would be to teach them how to make a simple script to copy the files.

> losing the network connection

If you must work over a terminal connection that drops, use termux or screen. Then you can reattach to a dropped session.

How about ... don't do that? This is not the 1970s; students don't work on a large, shared, departmental machine that wouldn't even fit in their home if they could afford it; you can have all the tools on your own machine.

Debug the program once locally, copy it once to the remote machine, build it there and test it again, done.

Katara has enough of a machine to run scp and Vim; but not actually build and debug the program? Does not compute.

My advice to novices would be that unless you're very lucky, your dad is unlikely to be a good source of advice. Most novices will get better advice from non-dad than dad.

Re: Advice to a novice programmer

#78

Earlier quoted context omitted.

Note that this feature is only available in the Professional (that is, paid) version. And since VS Code can do it for free, it has the upper hand in money-tight environments.

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…

> If you can't afford to pay for an IDE then your employer should get out of software development.

That's my most workplaces. After cut-throat technical recruitment process with complexity and data structures smartasses, I thought they must be great workplaces with the best tools. Then on the first day in the office "IDE?! no we have no budget for it, why don't you write code in the new message window of outlook?"

Re: Advice to a novice programmer

#79
post #38

> ... start in VSCode... set aside time to do some tutorials... Read a vim tutorial. Sheesh, I'm an emacs user and I think it's the greatest thing since sliced bread but I don't go around telling newbies that they should use good tools. vim's great. If that's what works for you, stick with it. You'll learn how to work with it eventually.

You don't even have to read a vim tutorial. The tutorial is already baked in. I learned vim by doing vimtutor every couple of months to learn more advanced features after getting basic navigation and editing motions down and forcing myself to use it for as much of my work as I possibly can. Learning vim early paid dividends in terms of productivity and also by forcing me to learn more about how to actually leverage o…

> I learned vim by doing vimtutor every couple of months to learn more advanced features after getting basic navigation

I think you're missing the point. Should a novice programmer postpone their education by months because they need to satisfy the imaginary pre-requisite of learning vim via vimtutor?

There's a lot of thinking involved at all levels let alone at the novice stages. I cant imagine how frustrating it'd be to understand closures + remembering that ci" changes the expressions inside double quotes.

Re: Advice to a novice programmer

#80
post #70

Earlier quoted context omitted.

I believe that IntelliJ can do this for remote servers. It installs an IntelliJ agent on the server and it’s like remote development, your real IDE becomes a lightweight client of it.

This? https://www.jetbrains.com/help/idea/remote-development-a.htm... JetBrains Gateway is a lightweight launcher that connects a remote server with your local machine, downloads necessary components on the backend, and opens your project in JetBrains Client.

That requires SSH daemon running inside Docker.

Plus it looks broken from the comments on https://youtrack.jetbrains.com/issue/IDEA-226455

> Peter commented 21 Feb 2023 11:23

> Remote development is my biggest JB disappointment. After years of development, it still doesn't work -- is too slow, buggy, crashes all the time, with most features just missing. Seems like they can't do it.

Last comment is from 16 May when they just closed the issue (and other related issues) with the same message.

In VSCode these things just work. And it needs no SSH to attach to a Docker container.

Post reply on HN