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