So you’re a programmer, coder or whatever cool kids call themselves these days. Part of my work for the past 6 to 7 years soon is programming. I think I’ve learned a few things in the meanwhile and I’ll share them with you here.
Keep in mind that this is my opinion on things, based on my experiences. You can agree or not. Maybe you already know/did some of these. Good job in that case!
1. Knowing PC’s helps a lot
A great deal of the programmers out there use PCs. Or have come across a server at least once in their career.
Knowing how to assemble a PC, to debug a hardware problem, to install an OS from scratch or even how to fix various problems can be a huge time and money saver.
Knowing how to choose a good part for your PC and installing it yourself can also help a great deal. What sets apart PC DIY from other areas where DIY works, is that on a PC, you cannot get a half-assed job if you just pay attention.
What do I mean: You can DIY that floor, but if a couple of wood planks are not straight eh… you’ll live with it… at least you did not pay for labor. But when it comes to PCs, make no mistake if you forget a cable, you’ll be needing to put it where it belongs. So you won’t have to ‘live’ with a half-assed job. Your PC won’t allow you to.
Also, paying extra for weak or low-quality hardware will bite you in the ass. Maybe not now, not tomorrow but it will sometime.
Spoiler alert: This part of tech being one of my hobbies, you’ll see a lot of things related to this subject on this blog and on my YouTube channel.
2. Learn something new
Me? I never actually had to deal with Phyton. But I’ve started fiddling with it. And it’s not because it’s so hip and trendy. I wanted something new.
Why? To keep you on your toes. As long as you’re learning something new, doing something new or discovering something… you’re on the right path. You can find some cool new tricks or even just exercise your logic skills, patience and have some fun.
Your advantage is that you already grasp a big part of any programming language if you are a programmer. No matter the language, some things are common. It’s just the syntax that differs.
3. Stay healthy. Physically and mentally
Freelancer, business owner or even employee. Standing in front of a PC for hours and hours is taxing on your system.
And I get it. We all have our flows, methods, and moods. Heck, I have my days when 8hrs straight is easily do-able. I love doing my work and getting those tasks done.
But ruining your health and burning out is not good.
I’ll admit, I’ve just started on the physical part a couple of months ago. And it still amazes me how clear-minded I can be after a good workout.
And as a business owner, I used to work endlessly. The biggest streak me and my wife had was about 4 months with no weekends and nothing else but work. I’m talking real work – from taking on projects, book-keeping, talking with clients to actually doing the work. After that, there was a major burn-out. It felt like everything was hard and took forever to be done.
My revelation came after my wife suggested I take a weekend off to game. Yes, I love me a great strategy or RPG game. Then lightning struck: after two days of gaming like a maniac, the next Monday I got things done at an amazing pace. I was blown away with surprise. Everything just… came. Every answer and solution to any task I had on the table.
Since then, no matter how tough things go (and believe me, in a startup things get rough sometimes), at least one day per week and the evenings are free. We walk the dogs, we do stuff away from work, work on personal projects, this blog, etc.
TLDR: You’ll make it. Work hard, try to work smart but stay healthy and sane in the process.
4. Work on you
Having one main activity/job/business can never get boring if you love what you do. But that does leave you open to one thing: you have all your eggs in one basket.
If anything goes wrong with your current main thing, and you have nothing else going on, man… it can get pretty hard.
What I’d suggest for a programmer or IT ‘guy’ is one of these: freelancing, doing an app/website as a hobby for you, find some problem to solve, get into a new hobby or anything else.
My golden rule for any side project is: always make sure it’s monetizable.
Why? Easy. Getting that monthly $200 from your blog-as-a-hobby that you write on for the past 3 years can get quite fun. And you have another income, that at least can partially keep you on the line when things get rough.
And if you’re thinking about savings that’s great. Having savings is awesome. But having an additional stream of income is also great. Plus, nobody is saying you can’t add that money to your savings or investments. But when shit hits the fan, it usually is temporarily. It’d be a shame to have to barge in that savings fund when there are a lot of options out there, especially just for 2 or 3 months of bad times. (like switching jobs or whatever)
5. Always optimize. Always improve
It’s never enough. Try to improve everything, all the time, when you have time.
I know it sounds funny. What I’m talking about is your skills and your processes.
Your workflow. Is it as much as it can be optimized so you won’t waste time with meaningless tasks?
Your tools. Using your best? Usually, the best tool is the one you master. That’s why I don’t buy into the whole PC vs Mac debate. I work best on my PC, as I set it up. I’d need some time to get used to a Mac and the specific software. I don’t have that time – that does not mean I think a Macbook is not good. It’s just not for me or I can’t be bothered to switch to one. Nothing more, nothing less.
So you have a favorite piece of software. Master it! Learn the shortcuts, tricks, and everything there is to know. You’ll be surprised by how much time you can save.
Last but not least: keep practicing your old skills. Keep them sharp. Either with work, helping people online (like on Stackoverflow) or with engaging stuff, made for you by you. I started out with PHP a while ago. Still have work to be done with it, still learning new stuff. I think that’s what entices me to programming. You can never know everything.
6. Bonus round: have a local development server
I don’t know if this applies to everyone. But as my work involves doing a sysadmin’s job or just setting up that VPS for a client that couldn’t be bothered to pay the hosting company for the set-up fee, I discovered that having something local to test things out on, and to try out different setups has been a huge help.
Having your own development server can allow you to mimic the production environment and make sure everything would work as it should. You can also use it to test and work on your own projects.
But why bother? I like to think of it as a working horse. It does not matter if I’m on my laptop, on one of the PCs or even on a new device. Or just reinstalled a machine. I can quickly FTP to my local server and work on that critical bug. That means that I can be fast when something is wrong and that having one PC fail, does not mean I cannot work or meet that deadline.
But what if the dev server fails? Remember point 1 from above? That’s why you invest in quality hardware and learn how to fix it on your own.
But why have a local development server when a cheap VPS box or a cloud server is so cheap nowadays?
Two things: speed and availability.
Please note – even if it’s a local dev server, I still have a domain and it’s accessible through the internet. Just in case I need to work remotely, or I need some feedback from a client.
Speed: it does not get any faster than LAN. A gigabit home network can have a latency as low as 5ms. Also, moving something to and from the dev server will be very fast. Especially if you get an SSD.
Availability: yes, yes most hosts have 99.99% availability. Wouldn’t it be awful to get 15 minutes of downtime at the wrong time? But I also have an additional problem: sometimes my ISP fails. Other times my electricity provider fails for just a couple of seconds. It’s enough for it to restart my ISP’s modem and cause me at least 5 minutes of downtime. Well, by modifying my machine’s host file, I don’t even use the internet when connecting to my development server from home. It just gets routed inside the network. Modem down? ISP being an ass? No problem, I’ll carry on.
And if you were curious:
The host file is a file on a Windows machine, that maps IP’s to network addresses, found at C:\Windows\System32\drivers\etc
Editing this file is made in the following manner: on each line, you specify an IP and the domain name you want it to point to. Example below:
192.168.0.272 devmachine.tld 192.168.0.273 nas.tld
The IP’s above are the local IP’s of those PCs or servers. And the domain names are just for example. You put your actual domain names over there.
That’s all folks!
If these tips helped you, share! Maybe someone else will find them useful too!