Workstation

A workstation is were you do your work, usually a desktop computer or a laptop connected to one or more screens and a mouse. Workstations are far more effective for development than just a laptop—especially given the amount of mouse-dependent shortcuts. But these days your laptop can also function as a full desktop by adding a keyboard, mouse, and monitor.

How Much Computer Do I Need?

Everything I teach currently at SkilStak can be done on a relatively basic computer. Truth is, coding does not take a very big computer at all—even a simple Raspberry Pi will work. Here are the main things that kill performance on most computers:

  • 3D graphics,
  • audio or video editing (not playback),
  • number crunching,
  • password hashing and cracking,
  • crypto-currency mining
  • data analysis

If you are not doing any of those then the Beginner Workstation Suggestion will do the job.

SkilStak Professional Developer Workstation

Hardware:

  • Dell XPS 15" 2-in-1
  • Dell UltraSharp 34" Curved Monitor
  • Dell Premium Active Pen Stylus
  • Gamer-style wired mouse with thumb buttons
  • Low-profile (chicklet) keyboard (wired or rechargeable)
  • Ubuntu Desktop Linux 18.04 LTS

Application Software:

  • VIM
  • Google Chrome Browser
  • Microsoft Visual Studio Code Editor
  • Git-SCM Bash (if Windows)
Research and Reasoning

These choices are informed by the current technologies and languages taught here, which are themselves informed by modern industry best practices, tools, and services.

One of the main surveys used for these determinations is the 2019 Stack Overflow Developer Survey. While it clearly does not represent all developers (mostly because busy developers working for larger organizations don't know what Stack Overflow is nor would they take the time to participate in a survey), it is useful to consider as a starting point. The results of the survey correspond to my conclusions as well.

According to the survey:

  • 49.9% of developers use Windows.
  • 26.7% use MacOS.
  • 23.2% use Linux.

Why don't you recommend Apple (Mac) computers?

Having a MacBook Pro was a standard developer tool for almost a decade, but times have changed. There is no clearer indication of that then the most recent Dell XPS line of computers. They are literally identical in all the ways that matter to the MacBook Pro. Dell has apparently seized on massive migration that seems to have started last year and looks to continue.

It is true that currently I personally use all Mac computers for everything except 3D development and gaming. You would think I would recommend what I own and use most. While Mac has the best user experience ever created too many factors have tipped the scales toward Windows and Linux. For most developers it simply does not make sense to invest in Apple products any longer:

  1. Microsoft has stepped up in many ways including buying GitHub.
  2. Microsoft continue to be focused on "developers, developers, developers."
  3. Apple seems to me moving more toward productivity tools.
  4. Apple moved its entire macOS division under it's iOS division.
  5. Apple has a habit of charging more and providing less.
  6. Apple released the biggest security hole in history in 2018.
  7. Apple seems to have lost its focus and innovation with Jobs.
  8. Apple is not a serious player in the developer world.
  9. Apple refuses to put touch screens on 2-in-1 computers.
  10. Apple has demonstrated it cares not about sunk cost (monitors).
  11. Apple no longer supports Linux.
  12. VSCode with Git Bash has leveled the developer tool world.

We have confirmed that Apple products no longer work with Linux running on the native hardware. This is likely the reason so many developers have shifted to Windows, which can be safely booted to native Linux when a Linux experience is needed.

There are a number of cases where Mac still makes sense:

  1. You have already heavily invested in Mac software and hardware.
  2. You are working a lot with audio and video editing and production.
  3. You have the money and prefer the superior interface.

Do NOT Buy a Gaming Laptop Like Alienware!

Nothing shows how clueless you are than buying an Alienware laptop, if you are a gamer get the desktop version instead, or one from MSI. Or, if you really want power, get the 2-in-1 XPS instead.

  • The company is simply Dell rebranding.
  • The computers are horribly overpriced.
  • You can't play games without plugging it in.
  • A 17" laptop weighs 9.74 pounds.
  • It shouldn't be called a laptop because it would fry your legs.
  • Money better spent on a more powerful desktop and lighter laptop.

The main reason people get a more powerful computer than one they need for coding is to play 3D games. Games as simple as Minecraft and Roblox require slightly more computer than a beginning developer workstation.

I think it is rather foolish to buy a high-power gaming laptop, both from a financial and practical aspect. The money is better spent on a desktop system with a very powerful graphics card and otherwise minimal specs and a very lightweight, aluminum laptop for carrying around and coding on.

What is the Best Computer for Hacking?

The closest computer you can find.

Perhaps the biggest mistake noob hackers make is buying a powerful laptop and loading it up with Kali or whatever and then not being able to do anything without their script-kiddy laptop. The worst among them won't even bother learning how to boot from a thumb drive.

First—and pay close attention—every hacker needs a powerful server rig to which they can login anytime from anywhere. Unless you are trying to hide your hacking this can be at home home in the corner. Many will also eventually setup this rig to do some sort of crypto-mining. This power can be leveraged from anywhere—including (the good) capture the flag competitions (no CyberPatriot is not one of them).

In fact, you could make the case that the best hackers at any such competition will not depend on their laptop at all, so long as it has ssh installed in some fashion and a Bash shell. All the tools and such required should be kept on the rig at their latest level so they can be downloaded instantly when needed from anywhere. That way any computer can be turned into a hacking workstation by simply downloading Putty (in the case of Windows) or using the built in terminal on Mac and Linux. This is why learning to use a terminal CLI and ssh is so critical.

Keep in mind "powerful" does not mean "can play any game at max settings" so make sure you know the difference before investing money. Most can find very powerful, unused computers in their relatives basements that can be reimaged with Linux to become very powerful server rigs.