DEV Community

You Don’t Need a MacBook to Become a Coder

Nočnica Mellifera on July 09, 2019

How to get all the computer you need to become a developer There is an essential part of consumerist culture that prefers buying somethi...
Collapse
 
adriansandu profile image
Adrian Sandu

I get it that this is a "sponsored" post and it's promoting one service ahead of others. However, I am a stout defender of the idea that you need to be in control of your personal and professional image. And for that, you need a personal website, that is separate from any other third-party provider.

You don't build your house on rented land.

Your account can be hacked. Their terms of service or policies might change. You can be banned without a way to appeal. There have been many data leaks from major companies and social networks. (btw. you should really check haveibeenpwned.com/ and see if your credentials are out there, in someone else's hands).

As soon as you can afford, get a traditional hosting package, try to get your given name as a domain and make at least a single page website. It will allow you to have your own email address (that is not from Gmail) as well as complete control over how you present yourself to the world.

Collapse
 
n8chz profile image
Lorraine Lee

Some say Heroku is a fast-n-cheap way to deploy a Rails app. I have a traditional web hosting account, your traditional LAMP stack in a user account on a shared host special. Looks like maybe I went too traditional on that one. But at least I have my own email domain, and my own little cloud for calendar and contacts. On the other hand, Heroku seems to be trending less generous with free tier and more into the upsell. At some point, anyway, I started getting a literally monthly email from Heroku that I've used something like 80% of my traffic, but this is on sites that I don't even use. Maybe search engine bots and referer spam or something are driving up the traffic. I dunno. Certainly there are no free lunches.

Collapse
 
nocnica profile image
Nočnica Mellifera

This is an interesting point! I really recommend using Heroku because it’s a nice intro to containerized deployment.

If you’re looking to create a portfolio or business site, I would definitely use a domain you own with Heroku, rather than a Heroku domain. That way if you want to leave Heroku later it’s just a matter of changing a record and taking your nice portable container elsewhere.

Collapse
 
adriansandu profile image
Adrian Sandu

I'm not saying "don't use Heroku" or other stuff like GitHub. By all means, use everything available to you as long as you are aware of the cost (visible or hidden). But having a separate hosting account and a personal website I think should be a priority for any professional. Not just for developers.

Collapse
 
ankit__raizada profile image
Ankit Raizada

You can get started with just free-tier of ANY service provider. Be it AWS, Heroku, Azure, GCP. ANY one with free-tier is fine. Heck you should set limits to dis-allow any billable usage. It will work fine. Put in money when you are going to make money.

Oh, if you feel that you are getting locked into any vendor service, remember the golden words of David Wheeler : ""All problems in computer science can be solved by another level of indirection".

Collapse
 
adriansandu profile image
Adrian Sandu

I don't know much about Heroku or AWS or any of the other platforms you mention, but their free tiers all have a limitation on the time they are up. Does that mean that your website will be down if you run past the allocated limit? That can be acceptable for a sandbox where you learn to code. Not for your own website.

You can get hosting from the company that sells your domain name. Many reliable hosting companies start with a package costing around $5-$10/month. That's fast food money. If you can't afford that, you'll have a hard time affording to spend the equivalent of a few hundred dollars on a laptop.

If money is that tight, then sure... You need to hoard any penny you can. But don't look at hosting as an unwanted expense. It's an investment in your professional image.

Also, going from the beginning with your given name allows you to avoid issues later on in your career. What looks cool at 17 doesn't necessarily fit anymore 10 years later. Just ask Harry Roberts of CSSWizardry ;)

Thread Thread
 
ankit__raizada profile image
Ankit Raizada

Depends upon what you want to build. A simple web-app with most of the logic running on browser and only some parts on server side can be built quite easily with free tier.

I know of AWS, it gives 1 year free tier and "Always Free" services.
You can put your compute part in AWS lambda or a micro instance and run it for free for 12 months atleast. You also get API gateway with some limits in free tier
You can put your static content (HTML+CSS+JS) on a public S3 or cloudfront CDN backed by a private s3 for 12 months and a 50 GB limit.

I am sure Azure, Heroku, GCP and Alibaba will have similar offerings.

It allows you to get started and learn and even demonstrate your work. Once you are confident, and sure that you want to stick to this line of work, may be start putting some small amount of money in it. These platform have a pay as you option so you pay only what you use.

Conflict of Interest information : I work for Amazon though my views expressed here are mine only.

Thread Thread
 
adriansandu profile image
Adrian Sandu

Fair enough. As I said, I am not familiar enough with these systems to know what is possible to do when using them.

Thread Thread
 
ssimontis profile image
Scott Simontis

I would encourage you (or anyone else) to do some heavy research into hosting providers, as not all of them are created equal. Some of them are cheap for a reason. Things to research/ask:

  • What security measures do they take as standard procedures?
  • How much extra will backups cost? Do they provide a mechanism to validate the backups, or will that be left to you?
  • How easy is it to scale up/down service levels? Do I click a button, or do I have to reinstall everything from scratch?
  • Is there an uptime agreement? How is it enforced? Some companies will only hold themselves responsible for downtime you report, even if your site is down overnight, if you didn't catch it, they still maintain they are meeting their SLA. Some companies offer you close to nothing when they violate the SLA...some will only offer a 10% credit for the amount of downtime you can prove.
  • What hardware are you using? A lot of the really cheap vendors are running servers that are at least 2-3 years old. Some of them are slow enough that it would actually be cheaper to buy your own server than pay their monthly fee!
Collapse
 
lysofdev profile image
Esteban Hernández • Edited

If you're really strapped for cash but really, and I mean really, mean it, get a cheap Chromebook for less than $300 and run Linux on it. You'll be able to run everything you need to learn things like Javascript, Node, Ruby, and Python which can land you a job. Once you have a job, you can get yourself that awesome power station. ;)

(Edit) Great article, BTW! I strongly agree that our consumerist culture profits off the illusion of spend to not have to learn.

Collapse
 
adriansandu profile image
Adrian Sandu

There are great older laptops available on eBay (or other similar marketplaces) that can easily handle any web development workload. Make sure there are at least 8GB of RAM and an i5 of 3rd, 4th generation or newer. If the storage is an HDD, swap it with an SSD for a massive boost in performance. Pick a trusty seller and you're done.

I have a Lenovo Thinkpad X230 that I've upgraded with an SSD and it works like a dream. It's a former business travel model, with reinforced chassis. Dell has similar models. I would pick a laptop like this over any new Chromebook of similar price. CPU power, RAM capacity, storage... they are all superior.

Collapse
 
buinauskas profile image
Evaldas Buinauskas • Edited

I've bought my corporate out of warranty laptop with similar specs for less than 200 dollars, installed Linux and couldn't be any happier. It runs butter smooth.

Collapse
 
adriansandu profile image
Adrian Sandu

Another option, if you don't really need mobility, is to get yourself a desktop. Again, the market is flooded with office Dells and HPs with more than decent specs for less than $200. Add a decent display and you're done.

If anyone needs advice on picking up a PC or building one, reach out to me. I'd be happy to help.

Collapse
 
dyllandry profile image
Dylan Landry

I've read before that linux cannot be installed on some Chromebooks because of hardware limitations. So, I'd check that first before committing to it.

Collapse
 
lysofdev profile image
Esteban Hernández

Chrome OS is based on the Linux kernel so it's very unlikely that a Chromebook wont run Linux. However, some Chromebooks have ARM processors.

Collapse
 
robertopreste profile image
Roberto Preste

Great post, this is definitely something that both beginners and experienced coders should read!

About the Chromebook part, if you're into Data Science you might want to check the Chromebook Data Science course, which is based exactly on the fact that you do not need anything super-fancy or super-expensive to perform efficient Data Science.

And lastly, about the website hosting part, may I suggest GitHub Pages? Simply code your website, push it to GitHub, and you're done!

Collapse
 
ld00d profile image
Brian Lampe

Does anyone really think they have to have a Mac for non-iOS development?

I use one because I really like it. I got one at work because I begged for it. Before the keyboard troubles they were really good.

No, you don't need one (unless you're an iOS dev), but if you like them, and you can afford to get one, don't let anyone make you feel like you're lesser for it.

Collapse
 
ferricoxide profile image
Thomas H Jones II

I carried an MBP for three years for work. My boss, at the time, hated all things Microsoft and forced us all onto MBPs. Consequently, I had to run VMware on it to be able to do the things I needed to do, because, at the time, a lot of the tooling I needed to use on behalf of my customers just wouldn't run native in OSX.

It was, overall, a Bad Time™. Apple's business repair support was beyond a joke. I got to be waaaaaaaaay too familiar with the spinning beachball. The thing ran hotter than any of my HP workstation-replacement laptops ever have (and those things are heat-beasts). Software that was ported to OSX usually did some combination of not work as well, had missing features and/or suffered bad memory leaks. The whole "we'll tell you how you can run your window manager/lay out your desktop" didn't help my feelings, either. And, dammit, I want a track-pad with actual buttons (preferably, more than one).

Really soured me on the whole Apple ecosystem. :)

Collapse
 
ld00d profile image
Brian Lampe

Almost the exact opposite of my experience.

I've had terrible experience with HP laptops.

You should use what works best for you.

Thread Thread
 
ferricoxide profile image
Thomas H Jones II

Most people tell me similar. However, no one's said to me, "yep: if you buy business class support from Apple, if a part fails, they'll have the replacement FedExed to wherever you happen to be within 24 hours (or a human on-site for more-complex problems)." Even getting a maxed-out HP and adding on the cost of that kind of warranty-service still results in a lower out-the-door price than an MacBook. That, if my MacBook fails, I have to get an appointment with a "genius" at the local Apple store – appointments which may not be available before my next work-day – just to get the MacBook seen (and, if there is an actual hardware issue, it has to be sent off-site) means that Apples just aren't suitable for someone that absolutely relies on the availability of their computer to bring in money. I've been through the laughable support that Apple offers. Never again.

Thread Thread
 
ld00d profile image
Brian Lampe • Edited

I've never had to bring an Apple product in for service.

I'll never buy from HP again.

We can keep going like this all day.

Thread Thread
 
ferricoxide profile image
Thomas H Jones II

Maybe they're sturdier, now, but the 2004-vintage MBP was not suitable for use by traveling consultants. The wear-and-tear of slogging through airports, daily setup and teardown at hotels and client-sites (and the slogs back and forth between them), they just didn't cope well with it. And the utter lack of meaningful hardware support means that they just weren't business-suitable.

If you don't offer on-site hardware support, you're not a supplier of business-oriented systems. Apple may have changed since then, but, they lost me forever with their "marginally better than Acer/ASUS/Toshiba/etc." level of service.

Collapse
 
henrycthomas profile image
Henry Thomas

Great post, MacBooks are awesome pieces of kit, but they are REALLY expensive these days. Its one of the really great things about web development that you can get started in notepad, and it's good for more experienced devs to remember that everything is just an abstraction after that!

Get started on something less pricey, save your money, or spend the extra on a really good chair, you'll be glad you did!

Collapse
 
steveblue profile image
Stephen Belovarich

Good post.

I agree, not everyone needs a Mac to code, but I think there is a much simpler answer.

Learn to code in the OS you are already the most familiar. That's it. Just because someone can code on a Chromebook, that doesn't mean someone should if they have used Windows their entire life. It's already going to be difficult learning a programming language, don't set yourself up to learn an OS at the same time.

Collapse
 
afghan_dev profile image
Sami Nazari

Agree!

Here in Afghanistan, mostly students study Computer Science with a laptop that costs 200$ and works fine (at least till the 4th year of CS).
I remember I had a used HP Workstation, after the 3rd year I bought an expensive Dell laptop.
Now, after working for 2 years in the industry, I want to get a MacBook Pro ;)

Collapse
 
elasticrash profile image
Stefanos Kouroupis

I have a Macbook Pro. Never used it for development. I use it for recording and mixing.

I always used windows and before docker I would use virtual box if I needed a Linux environment.

Yes you can start on anything. But not anything is cut out for all types of development.

My computer requirements nowadays though turn out to be the following one.

At least 16gb or ram to run my virtualized environment with ease. That's it.

Collapse
 
scottishross profile image
Ross Henderson

I do agree that you should use whatever system you want.

But I will admit that a lot of tutorials/training/whatever completely assume you have a MacBook. When I started looking at Docker the tutorial I was following said "Install NPM via terminal" and I was sat dumbfounded, now having to Google what NPM and whatever the terminal was.

I really wish it was easier for everyone to have a similar environment to learn on.

Collapse
 
nocnica profile image
Nočnica Mellifera

Really good point! Though now thankfully you can install npm just as easily on a Windows machine (the only error in that tutorial is saying 'terminal.' In fact I recently wrote a CLI tutorial for people in just this situation :) dev.to/heroku/the-cli-for-beginner...

Collapse
 
ferricoxide profile image
Thomas H Jones II

My last laptop, I bought a roided-out "workstation replacement" laptop. Six months later, all of my programming activities had moved to a cloud-hosted lab-environment. And, while Firefox and Chrome both love to go to town on my RAM, even at 32GiB available, they stop becoming responsive well before they reach half that usage-level. Since I'm no longer running local VMs, the quad-core design isn't real helpful, either.

Very likely I'm going to dial-back my "requirements" on my next purchase. :p

Collapse
 
ankit__raizada profile image
Ankit Raizada

All of my MBPs have always been employer provided. Nothing against Apple, but it is expensive for my budget. Personally I still use my 2005-06 vintage (HA!) T43 which I bought second hand sometimes back. It works great, modular and easy to repair if needed. Linux + Thinkpad all the way!

My humble suggestion to anyone looking for "learning machine" is to get an old Thinkpad or Dell. These are/were "workhorses", built to be worked upon for atleast a decade if not more. Ask the fine folks in NASA. They belong to the golden age of laptops of 2000s and early 2010s. Before iPads etc started to replace them in workplaces. They were bulk produced and bulk retired. Meaning they will be cheap as hell to buy.

And, oh, they keyboards are great! Just be sure to get a machine which was a bit "lightly used".

Also, install linux for all your shell needs. There any many guides and projects to run linux on "vintage" laptops. As a bonus you will get an environment that will be close to where you will run your code for real.

Collapse
 
janglee123 profile image
Meru Patel • Edited

The first line is enough.

There is an essential part of consumerist culture that prefers buying something to doing something

I don't understand why people think like that. And as this is not enough they think programmer who doesn't use Mac is not a real programmer.

Collapse
 
innestechnology profile image
innestechnology

I currently develop on both laptop (Dell 7480) and home-built PC.

However, I also need access to a Mac of some sort to develop mobile apps that can be deployed to iPhones, iPads etc. A bit of a pain unless I get a Mac...

Collapse
 
nocnica profile image
Nočnica Mellifera

This is a great point: there are definitely a few development tasks that get super difficult on a particular platform. In my sideline doing weird video glitch art there's lots of obscure Windows software I can't use without a Windows machine, and my understanding is that iOS development is more difficult without a macOS machine.

Of course, I don't think any of these should be a barrier for a programmer in her first year of learning how to code. I know Apple still hopes people will learn Swift as their first language, but I haven't seem much of that in my experience :)

Collapse
 
roshkins profile image
Rashi Abramson

I would love to add that glitch.com is an excellent resource for playing around with code even if you don't know what everything does. Try to break the code in new and interesting ways, and when that gets boring, try to fix it!

Collapse
 
matthewbdaly profile image
Matthew Daly

I do most of my personal coding on a £150 HP Stream netbook running Xubuntu these days. It's good enough to run a Laravel or Django application happily as long as you can use SQLite as the database.

I also own a Dell XPS 13 Developer Edition, but the Stream is often more convenient. I can take it anywhere and it's not a problem replacing it if I forget it on the train.

Collapse
 
leoat12 profile image
Leonardo Teteo • Edited

MacBook is not that widely used by developers, principally in other countries besides US and, maybe, Canada, conferences don't really say the reality about it.
This year Stack Overflow Survey says that 47.5% use Windows, the majority of the developers. If they like it or not is another story, but it is the reality around the world, I think. Windows notebooks are widely available and are cheaper than a MacBook with better hardware overall, so many people buy one. The question is Linux vs. Windows, but personally I have so much familiarity with Windows that I prefer it. Many things are cross platform nowadays and for applications who insist in working only on Linux there are Docker and WSL to solve the problem in development environment. :)

Collapse
 
rafasmxp profile image
rafuru

A laptop/pc with linux is way more efficient than a macbook.

Collapse
 
tuljmdev profile image
tuljmdev

I've spent enough time in the past contacting laptop manufacturer customer support to know your statement is not always true.

Collapse
 
arrlancore profile image
arrlancores

Coding in open area with apple mark on your laptop is good looking, but coding with limitation and creativity will push me to be a great dev. But its true macbook pro have some advantages if use it for development app.

Collapse
 
jeikabu profile image
jeikabu • Edited

Honestly, the only reason I've got a Mac Book Pro is to cover the "holy trinity" of OSes. I've always got a Windows desktop at work and Linux VMs or other devices. I like developing and testing across all three. Plus, when I'm at home it doesn't look and feel like work.

I always assumed everyone else had them because of mobile/pad boom. You mostly need a Mac to cover iOS.

I really wanted to like Chromebook. A few years ago I got an Acer with a Tegra X1. It was cheap but the screen and touchpad left a lot to be desired. Maybe I'll see what's on the market these days...

Collapse
 
nocnica profile image
Nočnica Mellifera

yeah I haven't used chromebooks much at all but the few we have at my shared workshop run great. Early versions I really struggled to like the basic hardware, but now the keyboards are way nicer, and unlike the macbooks I can charge them with USB-C but still have old style USB ports.

Collapse
 
ferricoxide profile image
Thomas H Jones II

But all my nifty stickers would look less spiffy on something other than a MacBook.

Besides: I absolutely adore that colorful spinning beachball.

Collapse
 
ferricoxide profile image
Thomas H Jones II

If by command line being pretty much the same, you mean OSX runs a BASh version so ancient Apple's looking to wholly deprecate it in favor of ZSH, sure. ;)

Collapse
 
n8chz profile image
Lorraine Lee

In the next 10 years the number of new jobs created will outpace the number of new entrants into the market by a factor of 2:1.

So where are the entry level jobs?

Collapse
 
efjspencer profile image
Ed Spencer

It's so true! You can use cheap hardware for development and run a modern but not so demanding OS - Like Xubuntu

Collapse
 
oieeaaaa profile image
Joe

I have only one reason to buy a macbook and it's the D E S I G N.

I have only one reason not to buy a macbook and it's the P R I C E.

Thanks for this post Tobey.

Collapse
 
molecula451 profile image
Paul

Why do I need a MacBook if I can code on a raspberry PI. You can even code in a laptop with only 1GB ram running your preferred OS console.

Collapse
 
nocnica profile image
Nočnica Mellifera

I agree! in fact I wrote about doing just that dev.to/heroku/how-to-deploy-your-a...