I am a total noob(I don’t know a dam thing) when it comes to programming but I would really like to learn. I have a chromebook and have been reading that it can be somewhat of a headache to learn on. Should I invest in a PC? Thanks.
It is possible but it’s going hinder you and greatly reduce your options often. You can often find a good used/refurbished windows laptop for less than many chromebooks.
ThanKs texxs. Thats what I was thinking after reading around.
You can keep ChromeOS, especially because you’re already familiar with it. For the beginning where you start learning it should be fine.
But when you need some advanced software, you can read this post https://stackoverflow.com/a/45211120/8605830
You’re fine. You may have to get a little inventive, but there are cloud based solutions for any software that you can’t install locally. Honestly, the size of the screen would be the part that bugs me the most.
Edit as of today (March 1st) codeanywhere is not longer free, instead you get a 7 day trial. Since codeanywhere and cloud 9 where the best full, free online IDE options and are now no longer free, the options for programming on a chromebook is pretty different. Essentially you now are stuck with codesandbox (a new comer, I haven’t’ used, but I have heard good things about) or some form of local Linux installation. I still recommend the crostini approach, since it is being handled by google developers and provides the most native development environment possible. But if this is not an option, codesandbox and simpler online ides (codepen, stackblitz) are the only options left, unless your willing to pay (I don’t go over these options)
Edit since writing this post, there has been a tectonic shift in terms of capabilities of some chromebooks. This is due to project crostini, which brings an officially supported way of running linux apps on a chromebook. Without getting to technical you get the following:
- A linux (debian) VM where you can install/ run basically anything you want, the same way you would on an Ubuntu system.
- You don’t need developer mode, so you get to keep ChromeOSes top of the line security.
- Currently no usb/pereferals support, GPU driver support (games will run like garbage), and no audio support. All of these are planned, but not available as of this writing.
- Only available to some chromebook models. (you can find updated lists by googling around, google adds support for more models often)
There’s a great reddit thread on getting started with this approach. It requires some technical knowledge, but is far less than either of the dual-boot, or chromebrew approaches. Most importantly you don’t need to put the chromebook in dev mode, as I’ve found it to be a rather large security risk.
With this new approach, a lot of chromebooks could basically get something like VSCode running. There are still lots of limitations, I mentioned the big ones above, but there are a few other one I’d like to bring up. This approach and many other approaches just don’t work for most budget chromebooks (which are around ~200$) if you want to run anything complicated. The lack of RAM/HD and CPU horsepower on most chromebooks make development rather difficult past the “notepad+run script” stage.
This project does give you unprecedented choices of applications, you can get chrome apps, chrome extensions, android apps, web apps, PWAs and linux apps on one machine, effectively making chromebooks the OS that has the most available apps (take that windows). Unfortunately its very obvious the experience with most of these (besides the web ones) is going to be shaky, or missing massive features native apps get.
Regardless, I personally recommend taking this approach to at least try things out since it’s very easy to rollback if you don’t enjoy the experience (you can create/add/destroy the VM containers very easily to reclaim the memory). It’s always pretty cool to be able to run Linux apps, but you need a solid machine to get anything out of most apps.
A chromebook enthusiast here (I’m on my chromebook right now going thru the FCC ES6 section )
I also wanted to be clear I provide this with focus on web development if you wanted to go learn C or java development, id recommend getting a real machine or be prepare to “hack” your chromebook (Ill go into that option for web development too)
So there’s a few things, chromebooks are fine for learning but you might have to take a few different approaches depending on what your learning. If your just starting out learning web development and using FCC or something similar (where you do most of your code in FCC, or a place like codepen) you’ll be fine.
But if you wanted to move out of this realm, into a more realistic development environment you will have three options.
Use a cloud IDE, like Cloud 9, code anywhere, or stackblitz (amazing for those react/angular developers out there ) These all provide an ability for you to work on projects, by providing an interface similar to the one you would have if you were using something like VSCode, Atom, or webstorm.
I personally recommend this option since it allows you to carry over your work to a new PC/ other PC’s, or heck your friend’s PC fromwhere ever you left off, its pretty freaken cool no doubt haha. It also wont require you to do anything to your chrome book per say.
“Dual boot” your chromebook with crouton which allows you to install a linux distro “next-to” your chrome OS one. This will require you to turn on developer mode on your chromebook, but provides the a true development environment with a real linux OS. The coolest part is being able to switch between ChromeOS and your linux VM with a click of a button (!).
If dual booting your chromebook sounds scary don’t worry about it to much. Almost everything important on a chromebook should be in the cloud, thus you can wipe/reset/redo your chromebook as much as you want without any major repercussions.
Obviously this takes a little techie knowledge, but you can get the most out of your machine with a real OS. You will run into some performance issues due to the fact most chromebooks aren’t very powerful and running two OS side by side isn’t the most optimal situation, but for most basic web development work you should be ok.
Use chromebrew to “package” your way to a development environment.
This is probably the most interesting option, where you put your chromebook into developer mode, but install this to get access to common packages that run allow your chromebook like any linux distro. You can easily get npm, node, and git to get a basic setup going.
This option is really situational, I had a couple of issues with getting node and npm to work, and running a web-server is a pain. But it might work better depending on how hard you try, but I wouldn’t recommend it for a beginner unless your ambitious.
Chromebooks can act as a dumb terminal for any web server. If you want to be a pro hacker and use Vim as your editor you can easily find yourself at home SSHing into a remote dev sever and doing all your work there. Again this is pretty advanced, but worth a mention of an “optimal” chromebook development environment.
Using online editors you can get pretty far when learning, but your mileage will vary depending on what approach you pick. I did an entire project on cloud 9 from my chromebook + random computers I had access to at the time. So yes its possible but it isn’t straight forward or common. The main thing is, a lot is possible, but you might have to work for it with a custom environment, or settle for an online IDE.
Hopefully that sheds just a little light on getting going with a chromebook
PS. Cloud 9 used to be free, now you have to pay for the sever time you use, since it was bought out by AWS. I heard Code anywhere is good, but I haven’t used it to much so I cant recommended it beyond what I heard. Stackblitz is awesome as hell, but defiantly oriented toward quick mockups, demos. It also primarily is used for React and Angular frameworks, but should work fine for general JS projects.
You could use AWS’s Cloud9 (free but requires a credit card), another option would be coding on Google App Engine (not sure if it also requires a credit card off top of my head) and using Google’s in browser IDE. You could configure Crouton on your Chromebook and run Linux apps on it. You can also use https://glitch.com or https://codepen.io if you’re more focused on front end development.
Thank you for the info.
I like codeanywhere.com myself and not just because they have lower prices subscription options. But because they give me more options that i need to work on different websites easily, like I can FTP into a website with their tool instead of SSH if I want to.
I don’t the Google App Engine even has a code editor… isn’t it just about infrastructure, like koding.com?