Creating a productive development environment

Show notes

All Podcast episodes: https://maximilian-schwarzmueller.com/podcast

Want to become a web developer or expand your web development knowledge? I have multiple bestselling online courses on React, Angular, NodeJS, Docker & much more! 👉 https://academind.com/courses

Show transcript

00:00:00: As developers we spend a lot of time

00:00:03: writing code, guess what, and of course

00:00:06: we spend that time in code editors on

00:00:10: our machines, on our Macbooks or

00:00:12: Windows PCs and therefore of course it's

00:00:16: absolutely important, at least in my

00:00:18: opinion, that you set up a development

00:00:21: environment that you like and that

00:00:25: works well for you and with

00:00:27: development environment I don't just

00:00:30: mean the code editor, though it's

00:00:32: arguably the most important part, but

00:00:34: instead I mean the overall environment

00:00:37: including the hardware you're working

00:00:40: with, so the laptop or the PC you're

00:00:42: using, the monitor setup you're using,

00:00:45: these things all matter because I do

00:00:49: believe, and I'm pretty sure you could

00:00:51: find some studies on that as well if you

00:00:54: wanted to, that you're of course more

00:00:57: productive if you're working in an

00:00:59: environment that works well for you,

00:01:02: but, and that's the big but, not that but,

00:01:07: but the but, which has to be mentioned,

00:01:10: of course you can also take it to a point

00:01:14: where it's too much.

00:01:16: We probably all know those people who

00:01:20: spend so much time optimizing their

00:01:24: workplace and their development

00:01:27: environment, their setup, that there's

00:01:30: barely any time left for the actual work

00:01:33: and you probably also shouldn't try to

00:01:36: reach that point.

00:01:38: Instead, as always in life, it's the middle

00:01:41: you want to aim for.

00:01:42: You don't want to have that super basic

00:01:45: setup which you don't like where

00:01:47: everything is slow and takes you ages

00:01:50: but you also don't want to spend your

00:01:52: entire day on cable management and

00:01:55: monitor setup and installing extensions

00:01:58: into your Visual Studio code.

00:02:00: That's probably also not what you should

00:02:04: do.

00:02:05: Instead, at least for me, what is super

00:02:07: important is that I have a machine, a

00:02:10: MacBook in my case, which is so fast

00:02:14: that it doesn't get in my way, that things

00:02:18: happen pretty much instantly, that I

00:02:20: don't experience any lag or any

00:02:23: slowdowns, but that I simply don't have

00:02:26: to worry about the hardware.

00:02:28: That is important to me and I would

00:02:30: think that this is probably important for

00:02:33: most people because who likes working

00:02:36: with slow hardware?

00:02:39: We probably have all been there.

00:02:41: I definitely have in internships and back

00:02:46: then when I was employed, I had to

00:02:48: work with slow machines and I do know

00:02:51: that therefore, of course, you might not

00:02:53: be able to choose your machine, your

00:02:56: laptop, because you might need to work

00:03:00: with whatever you get from your

00:03:02: employer, but if you have a choice and if

00:03:04: there is at least some way of making it

00:03:07: happen, investing in good hardware is

00:03:10: definitely worth it in my opinion and it

00:03:13: doesn't have to be the latest high-end

00:03:17: MacBook which is absurdly expensive.

00:03:21: It just has to be a decent machine that

00:03:24: gets out of your way.

00:03:26: Now another important hardware topic

00:03:29: of course are monitors and we probably

00:03:32: also all know these setups where people

00:03:35: have like three or even four monitors

00:03:38: and hey, if that works for you, awesome,

00:03:41: perfect, let's do it, but at least for me, I

00:03:43: found out that it's one external monitor

00:03:46: and then the monitor of my MacBook

00:03:49: and for me that is enough.

00:03:51: If I have more monitors, I'm not using

00:03:53: them.

00:03:54: However, the external monitor should be

00:03:57: big enough.

00:03:58: I don't want to have a super small

00:04:00: monitor, but with that I'm fine.

00:04:03: I can then have like my code editor on

00:04:05: one monitor, the preview page on the

00:04:07: other one or have them side by side and

00:04:10: have some browser open for doing the

00:04:13: research and for looking up stuff.

00:04:14: That works absolutely well for me and

00:04:17: that is therefore the hardware setup I

00:04:20: work with well.

00:04:22: Now when it comes to the software, I'm

00:04:25: not that complicated.

00:04:27: I know that there are people who spend

00:04:30: lots of time on installing just the right

00:04:33: themes for their code editor and the

00:04:36: operating system that install alternative

00:04:40: terminals because they don't want to

00:04:42: use with the default system command

00:04:44: prompt or terminal and so on and you

00:04:47: can do all these things if that is what you

00:04:49: need, definitely do it.

00:04:51: For me, that all doesn't matter too

00:04:54: much.

00:04:55: I use the default macOS terminal for all

00:04:59: the commands I run because I don't

00:05:02: tend to do super complex work in the

00:05:05: terminal, so I don't need any fancy setup

00:05:08: there and yeah, it's ugly, but I'm fine with

00:05:11: that.

00:05:12: When it comes to the code editor, I do

00:05:16: want to make sure that it looks nice, that

00:05:19: I like working in it, that I have a nice font,

00:05:22: that I have a theme which I want to look

00:05:25: at and where I don't destroy my eyes,

00:05:30: but I don't change that theme every four

00:05:33: weeks, for example.

00:05:35: I know that there are people who really

00:05:37: like mixing it up there and that's of

00:05:39: course fine.

00:05:40: It's no big deal to change the theme, but

00:05:42: you should definitely try to find a setup

00:05:44: that works well for you once and then

00:05:47: not spend too much time on optimizing

00:05:50: it in the future, I guess, because that

00:05:53: would really be unnecessary work.

00:05:56: However, if you of course like switching a

00:05:58: theme every four weeks or so, that's

00:06:00: absolutely fine.

00:06:01: Again, it's a super quick process, so

00:06:04: nothing wrong with that.

00:06:05: Of course, the code editor optimization

00:06:09: or setup doesn't stop there, you can do

00:06:12: much more.

00:06:13: You can install extensions, you can learn

00:06:16: about all the shortcuts it offers so that

00:06:19: you can get more productive and here is

00:06:23: the one thing, probably the most

00:06:26: important thing I'd argue you should do.

00:06:29: You should take your time and learn the

00:06:34: shortcuts offered by your code editor.

00:06:37: Not all of them of course, there's an

00:06:39: endless amount of shortcuts, but the

00:06:42: important ones and also some shortcuts

00:06:45: you probably didn't know before, like for

00:06:47: example a shortcut for selecting

00:06:50: multiple occurrences of the same word.

00:06:53: You should learn about multi-cursor

00:06:55: features that might be offered by your

00:06:57: code editor because all these things can

00:07:00: make you much more productive.

00:07:02: And there are people who basically say

00:07:05: that a good developer never uses a

00:07:09: mouse and I don't agree with those

00:07:11: people.

00:07:11: I do use the mouse and I do call myself a

00:07:15: good developer, but what is true is that

00:07:18: you're typically quicker with shortcuts

00:07:22: and with the keyboard if you know those

00:07:25: shortcuts, if you know essential

00:07:26: shortcuts and that's why you should

00:07:29: spend some time learning them

00:07:30: because it will make you more

00:07:32: productive and at least for me, it also

00:07:35: makes writing code more fun because

00:07:38: scrolling around with a mouse and

00:07:40: manually selecting stuff, that's not a lot

00:07:44: of fun, that is not the part about

00:07:46: development which I enjoy.

00:07:48: Instead I enjoy solving problems and the

00:07:51: faster I can do that, the better it is.

00:07:54: So that is the one thing you should

00:07:57: definitely spend some time on and

00:07:59: where you should also be prepared to

00:08:02: continue learning because at least for

00:08:05: me, I still learn about some new trick or

00:08:09: some new shortcut from time to time

00:08:12: and of course code editors also often are

00:08:16: still under active development like Visual

00:08:19: Studio Code, so new features are added

00:08:21: all the time and therefore sometimes

00:08:23: there is a feature which is helpful which I

00:08:26: then pick up and continue to use in the

00:08:29: future because it might make me more

00:08:31: productive and therefore as you can tell

00:08:34: by how much time I spend on this topic,

00:08:38: this really is one of the most important

00:08:41: parts of the development environment

00:08:43: setup in my opinion even though it's

00:08:45: technically not part of the setup, but it's

00:08:47: still part of the setup process I would say

00:08:51: because you need to know how to work

00:08:53: with the tools you installed, you need to

00:08:55: know how to work with them efficiently

00:08:58: and therefore besides having a fast

00:09:01: machine and a sufficient amount of

00:09:03: monitors and a theme that looks good,

00:09:05: you should make sure that you know

00:09:08: how to work with the tools you installed

00:09:10: because if they just look good, that's

00:09:13: nice but arguably not the most

00:09:16: important part.

00:09:17: Now I will say that of course that's not

00:09:20: necessarily all you should consider when

00:09:24: setting up your development

00:09:25: environment, for example when using

00:09:28: Visual Studio Code or actually for most

00:09:31: code editors I guess you can install

00:09:34: extensions which also might make you

00:09:37: more productive because they might

00:09:39: offer features which were not built into

00:09:42: the code editor which do allow you to

00:09:44: save some time or which add something

00:09:48: that makes the development process

00:09:50: more fun because that is also important

00:09:52: and that's also where we come back to

00:09:55: the looks of the tools for example.

00:09:58: If you're working in an environment

00:10:01: that's not fun to work with, you also will

00:10:04: not be as productive as possible because

00:10:07: in my opinion you need all these things,

00:10:10: you need hardware that works well for

00:10:12: you, you need software that works well

00:10:16: for you and where you know how to use

00:10:18: it and how to use it efficiently and you

00:10:20: need an overall environment which

00:10:22: includes the hardware and the software

00:10:24: and even things like your chair or what's

00:10:27: on the wall you're also looking at the

00:10:29: entire day that makes you feel good and

00:10:32: that makes you like your environment

00:10:35: because the fun part is also important.

00:10:39: If you're in a spot where you don't feel

00:10:41: comfortable you also won't be too

00:10:43: productive but then at some point you

00:10:48: also should consider stopping

00:10:50: optimizing your setup and your

00:10:52: environment and you should just make

00:10:54: tweaks here and there from time to time

00:10:56: and instead use it and work in it because

00:11:00: if you spend your entire day optimizing

00:11:02: it as some people seem to do you might

00:11:06: feel productive but you aren't productive

00:11:09: I would argue.

New comment

Your name or nickname, will be shown publicly
At least 10 characters long
By submitting your comment you agree that the content of the field "Name or nickname" will be stored and shown publicly next to your comment. Using your real name is optional.