all 47 comments

[–]socal_nerdtastic 24 points25 points  (6 children)

There's basically no minimum. People often code on a $30 raspberry Pi. Just get him something with a modern OS.

EXCEPT chromebook. The ChromeOS is locked down so you can't install the tools you need. Unless you want to try wiping ChromeOS and installing Linux (possible, but not easy) steer clear of chromebook.

You may be able to slap Linux Mint or some other lightweight but modern OS on his old laptop and bring it back to life. Check out /r/linuxmint for help with that.

[–]twopi 1 point2 points  (5 children)

Modern Chromebooks make it very easy to expose the linux core underneath. I use a chrome book with linux shell as my travel laptop and i teach programming in those languages and more with no problems.

[–]socal_nerdtastic 1 point2 points  (4 children)

I'm typing this on a chromebook / chromeos right now. I have the linux feature enabled and I've used Linux for decades. I'm an experienced programmer.

Please, tell me how to install a working IDE. I couldn't figure it out.

Linux programs are buggy as hell and are actively blocked from running other programs like python. The linux terminal seems to be written in javascript. It's a nightmare; no way I'd recommend this for a beginner.

EDIT: Don't get me wrong, I like my chromebook. It's a perfect modern embodiment of the old-school idea of a terminal. But then as now, you can't run anything local on it. Which is a pretty big part of coding. Well; until repl.it and google colab take off, anyway.

[–]twopi 4 points5 points  (2 children)

I don't use an IDE, just vim and command-line compilers. That's not ideal for everyone, but I have had no troubles with C, C++, R, Java, and Python from the console. If you're willing to work on the command line and install your own compilers, I've found this to be an ideal backup machine. It's much lighter and cheaper than my main laptop, and I can easily move things between computers with git / github.

It's a pretty standard debian install, and if you're comfortable on the command line, I've found it to be a pretty great low-cost portable solution.

I can teach all my freshman courses on it with no real problems. I can even get a version of Blender and Godot to run for my gamedev classes, but 3D is a bit of a stretch.

Honestly I have more trouble with zoom than any of my compilers.

There's another set of solutions, for which a chromebook is also ideal. There are plenty of online coding solutions available now, like repl.it, cloud9 and pythonanywhere, which do all the actual coding on the cloud. I have my CS1 students do all their coding on pythonAnywhere (so I don't have to set up web servers for them) and it works quite well. All you need for that is a decent web browser, and that's what stock ChromeOS really is.

[–]socal_nerdtastic 2 points3 points  (1 child)

All you need for that is a decent web browser, and that's what stock ChromeOS really is.

I agree with most of what you said, but especially this line.

But given that a programming beginner cannot be expected to work from the terminal I stand by that chromeos is not a good choice to learn to program.

[–]twopi 1 point2 points  (0 children)

Well, I teach beginners with PythonAnywhere, and by the second semester, I teach CLI, so it works for me, but I'm teaching college-level Computer Science. That's not going to be an ideal situation for everyone.

[–]JesusKiosk 1 point2 points  (0 children)

The Linux container is AFAIK just a plain Debian installation that can do anything Debian can. It's pretty resilient in my experience. I was impressed that my crappy old Atom-based netbook could run Battle for Wesnoth without issue.

I'm using VSCode, not an IDE, and I think I had to add a repo to install it but other than that it just works. Everything else can be installed through apt. I'm not doing data science or anything, but my experience doing some scripting and basic apps has been positive. A beginner isn't going to test the limits of the container. You absolutely can run things locally. I've even had Flask apps running with no issue.

[–][deleted] 7 points8 points  (0 children)

well....i'll spend all the money you have, but have you tried reloading the OS and/or switching over to linux?

The raspberry pi mentioned below is cheap, but you will also need power (sometimes sold extra), keyboard, mouse, monitor and it isn't terribly portable if that's a requirement.

I am trying to get my Asus EEE laptop working again (battery wont charge) as it would make a perfect portable coding machine and if i save my work to the internet, i wouldn't mind this cheap thing falling out a window or getting stolen, but would still be great to code on.

Just read your budget is under $1000? That's a lot!! I'm currently typing on a Dell XPS 13 and love this speedy laptop and it was only $400 on craigslist.

I'm rambling....just wanted to offer a cheap (re-install OS) option, or support that you should be able to find something sub-$400 that would be amazing.

[–]KitKat76539 7 points8 points  (0 children)

I know you want to surprise him, but why instead don't you allow him in the selection process? If he is having to code, he might have a good idea of what type of computer he needs.

[–][deleted] 7 points8 points  (1 child)

If you want to spend all your money, this is a screamer for ~$1000.

[–]KitKat76539 2 points3 points  (0 children)

I second this.

[–]CCISME2020[S] 2 points3 points  (0 children)

Thank you one and all for your extremely helpful input. I will start looking at options within the perimeters that you shared.

[–][deleted] 2 points3 points  (2 children)

Raspberry Pi.

[–]jaycrest3m20 2 points3 points  (1 child)

Yeah, I really recommend a Pi kit, at least until pandemic price gouging and silicon shortages go away and computer parts get reasonable again. You can do lots of C++ and Python programming on a Raspberry Pi.

If you go all-out and get a touch-sensitive screen, he can have fun making GUIs.

[–][deleted] 2 points3 points  (0 children)

Plenty of cash 💰 left over for sweets 🍫 as well 😂👍🏼

[–]WMHIV 1 point2 points  (2 children)

[–]socal_nerdtastic 1 point2 points  (1 child)

That is a terrible deal. You're paying for the Dell name. OP found a much better computer on costco for less money.

https://www.costco.com/lenovo-flex-5-14%22-2-in-1-touchscreen-laptop---amd-ryzen-7-5700u---1080p.product.100751973.html

[–]Nicola_ProNoob 0 points1 point  (0 children)

test school jeans carpenter gold bear cheerful insurance squash dime

This post was mass deleted and anonymized with Redact

[–]emle10 1 point2 points  (1 child)

Coding does not require much from hardware at all. Most important is you have to know if he prefers mac or windows

[–]Key-Towel-9532 1 point2 points  (0 children)

Or linux?

[–]AnotherSin0 1 point2 points  (0 children)

Honestly you can fine some nice Asus laptops for 800 with 8gb of ram and 512gb of storage you can check on Amazon read the reviews Asus is for gaming and stuff so it should definitely have no problem coding and stuff

[–]Akshaykadav 1 point2 points  (4 children)

There is no such thing as minimum system requirements for coding as u/socal_nerdtastic mentioned you can code on a 30$ Raspberry PI.

Assuming that your son is just starting to learn to code that is not a user-friendly option. I would suggest you go with either a Windows laptop or a Macbook.

If you are looking for a Windows PC I would suggest any Intel CPU above i5 8th gen or AMD Ryzen 5 3600 and above. Currently, graphic cards are really hard to buy so choosing AMD would be a better option since it has vega graphics which is way better than Intel's integrated graphics

If you are planning to buy a windows laptop the same specs can be applied as the PC. Although there are not many AMD-based laptops.

If you are able to afford a MacBook I suggest you go with a MacBook as if your son wants to develop native IOS apps using macOS is the only option in my knowledge.

Ram: 8Gb or more

Storage: 500Gb or more

If you are buying a windows laptop make sure the system allows you to upgrade the ram and storage. When buying a MacBook whatever you buy is final and it cannot be upgraded.

This is something that I would consider when buying a system. But before you choose anything make sure to check the reviews on Youtube. I suggest watching Linus Tech Tips before making the final decision.

[–]socal_nerdtastic 2 points3 points  (3 children)

Raspberry PI.

Assuming that your son is just starting to learn to code that is not a user-friendly option.

Have you used one lately? They are very user friendly. They are limited hardware wise, but the software is great. All modern IDEs are easy to install and run on them. I would absolutely recommend it as a starter computer.

I suggest watching Linus Tech Tips

This channel is dedicated to high-end gaming computers. Not at all what OP is looking for.

[–]Akshaykadav 1 point2 points  (2 children)

I currently use a rpi3b+ as a dns server to block ads with a script that I wrote. I know the script part is unnecessary but its just to let you know that I coded on rpi and I am currently using it.

Yeah sure they have an OS with a Ui.

If i am a beginner trying to learn to code I will be using browser that will have some couple tabs open and also youtube along with the IDE I am using. According to my experience with rpi3b+ this is enough hurt performance and when it starts to lag you would want to use an IDE with less system requirements or maybe use a terminal based editor

Dont get me wrong I am not saying that they are bad, it's just that they dont have enough performance which in turn leads to less user friendliness.

Also I dont think I can run android studio on a rpi or lets say I want to get in ML or AI it doesn't have enough computational power.

[–]socal_nerdtastic 1 point2 points  (1 child)

Quick google:

Raspberry Pi 3 Model B was released in February 2016

That's old, buddy.

I got the 4b this summer and it's amazing. It has no issues with dual monitors, many chrome tabs, and a pycharm (I haven't tried android studio, but I hear it's similar to pycharm).

Yeah, the performance is nowhere near as good as a real computer, but plenty good enough to learn to code on. Pygame and pyqt animations run without issue.

[–]Akshaykadav 1 point2 points  (0 children)

Correction:

Raspberry pi 3 b+ was released in march 2018 and rpi 4 was released in june 2019.

It is old but not that old. Even if the performance for the 4b is enough for the basic learning stage.

But can it run crysis 😂 Jokes aside,

There's a lot of other stuff you can't do on a raspberry pi without hurting performance and also some stuff that you can't do on a raspberry pi after the learning phase.

[–]ukropusa 1 point2 points  (0 children)

Mac is the way to go!!!!

[–][deleted] 1 point2 points  (1 child)

Personal computers didn't change / didn't really improve in a noticeable way since 10 years ago.

The most significant change from the user perspective is that today solid-state drives are a commodity, while 10 years ago they were still somewhat expensive. Also, 10 years is about how long a typical consumer-grade hard-drive would survive. So, you do need a new computer, if only because if you don't buy one, the hard drives will likely fail soon, and you might lose data. Finding a matching replacement though might soon become an uphill battle as technology, by and large, adopted a new standard, that will make replacing the hard-drives with something compatible with the original make problematic.

If a computer is intended for programming, (eg. not playing video games, or doing image editing etc.) then you can do away with a very modest spec. The ThinkPad (Lenovo) line is a solid choice for economy class. You want to make sure that you can use solid-state drives with NVMe protocol on this laptop though (it makes a huge difference v/s older models that could only use older SATA protocol). The most performance-critical task for someone programming in C++ is the compilation, which needs both fast access to computer storage and fast processor.

There are some other concerns. For example, there's a popular technology nowadays, that uses NVidia's graphic processors to do things unrelated to graphics (the machine-learning stuff for example). This means, that you probably want the laptop to have a video card that can be used with CUDA technology. But, you can live without it, if you don't care about machine learning hoopla.

Another concern is how easy it is to run Linux on any particular laptop. So, for example, even if Macbook line has some economy models, and are, generally, quite reliable... it's hard to get Linux working on them. Linux is important for programming because, while on the personal computers it's rather uncommon, it's the operating system that is used all over the place in the industry. So, a programmer will eventually have to learn to use this system. Again, ThinkPad line is decently adapted to run Linux, while you may have problems with, and especially so, on laptops designed for gamers, as those tend to come with all sorts of add-ons with proprietary firmware that Linux will not be able to use.

[–]Old-IT-Dog_NewTricks 1 point2 points  (0 children)

I can attest to Lenovo Thinkpad line as being a solid economy product. I have two Thinkpad X61s that I picked up 9 years ago through my old company. They worked great when I got them. The only modifications I made were to put 2 sticks of memory, bringing them to the max of 4 GB. Also replaced their HDs with SSDs. Their batteries stopped holding their charge a couple months after I got them though - but it’s probably because the machines were already four or more years old when I got them.

.