Mastodon

hjertnes.blog

Notes on beginners and software development.

28.08.2019 19:11

I think it is really important that it is as easy as possible for some kid to just figure out they want to make a web app, and have something on the screen really fast. These are some of my notes from seeing all kinds of people learn how to code in a professional enviornment for the first time.

  • Anything that requires you to do many steps to get something on the screen can be really discouraging. Any framework like .NET Core, Rails or Django is like this, for good reasons, but this makes it harder to get started.
  • React and JavaScript is something experienced developers struggle more with, than new ones. Because they’re probably not that used to much else.
  • Anything where you can start simple figure out one thing and then introduce another and repeat seems to work well.
  • Stuff like React and Express have worked out well, because you add a line of code and seconds later you see it on the screen. And you can keep it all in one file.
  • Make sure the tooling works as much out of the box as possible. The easier this is the faster the’ll learn

I think the most important thing if you try to make things easier for beginners (and not what some old dude think is difficult and therfore it must be harder for beginners) is to listen to some beginners.

JavaScript Rant.

25.08.2019 20:09

There are some problems with JavaScript. For example how broken math is or how much it pretends to be a C# or Java like OOP language.

But JavaScript is in general great. We get a new version of the language every year, that solves real problems. And there are new tools and libraries showing up each month (sometimes each week) that try to solve a problems a lot of people have. The great thing about this is that what is a real pain point in 2018 is very different from 2019.

This isn’t all without issues however. The negative side to thing becoming a little bit better more or less all the time is that you as a developer will have to spend more time keeping up to date than you would in a slower moving community.

But I’m in general mostly happy with where JavaScript and Node have been moving.

Likes

23.08.2019 19:30

Using NPM for command line tools

21.08.2019 18:03

I started to write all my custom command line tools in Node a while back. It was less than a year ago, but more than six months ago. The reason is simple, if I can put them up on NPM I can run them everywhere using npx without having to think about installing or keeping stuff up to date.

A lot of people have problems with JavaScript and Node for various reasons. Some because it change a lot(I think it is great because then things get better a lot faster) others don’t like that it is async (it is only a issue until you get used to it, and stuff like async and Promises have made it a lot easier).

What I enjoy a lot about this strategy is that the tools are solid, and that I can use third party libraries to solve a lot of stuff.

I do not regret moving all of my python, perl and shell script stuff over to node, it has made everything a lot easier to manage.

React in 2019

18.08.2019 11:10

The big thing going on in React this year is to move away from class based components to pure functional ones that use Hooks where it is possible. And if you are doing React development I recommend that you start doing this as soon as possible. You should at least get used to hooks.

I like hooks a lot better than I have ever liked class based components, and they are a lot easier to make re-usable. But they can be a little bit confusing in the beginning. Especially if you have not started using them yet.

My bet is that the React team will add hooks that solve the remaining things only class based components can do in the next couple of releases. What usually happens when something change to something new in React you usually get a couple of years before you start seeing warnings and then another year before it is gone. And it is a lot easier to deal with this kind of change if you start doing it early.

Likes

16.08.2019 18:16

Emacs as a computing platform

14.08.2019 20:53

Most emacs power users would probably agree with the statement from the Emacs Manual about Emacs being more of a computing platform than just a text editor.

If you know a Emacs power users you have probably noticed how we sometimes try to move stuff to emacs that seems a little bit weird to do in a text editor. Like reading email or rss feeds. Those are two of the things I recently have moved back into emacs.

When something works in emacs I really love doing it there, because I prefer having as much as possible in there because it makes my workflows and setup a lot easier. But if it doesn’t work that well there I just get rid of it. One example of something I want to do in emacs that doesn’t work at all is browsing. And one thing I don’t do a lot in emacs is shell stuff, because I haven’t really found a good enough way to do it.

The effects of a MVP

11.08.2019 19:00

When you build a product outside of a MVP mindset you define what you’re trying to make. And then you make a list of features that makes sense based on that. But also based on what people expect to have there. Back in the day we all always expected to be able to import and export data in all online services.

But when you are doing things like an MVP and follow incremental improvement, instead you try to find what are the minimum we can make that are useful to our users and that give them enough value to continue using it. And then you start adding features based on feedback and where you see pain points.

This means that a lot of “obvious” features will probably never make it, because they are nice to have, but neither you see the pain points or the users ask for them enough.

I’m of the mindset that some features should be there, not because you need them or because people want them, but rather because it is the right thing to do.

It is interesting to look at the effects different ways of working can have on your product.

As always, the most important thing is do build stuff in a way that makes sense to you. If something would annoy you if it wasn’t there, add it.

Likes

09.08.2019 06:12

Powershell

07.08.2019 20:54

Powershell is something I have to deal with at work, because we’re on windows, and all our internal tooling is written for it. Not a huge fan of it, but it is what it is.

I think it is a great interface to write scripts and automate stuff. But I do not enjoy using it as a shell.