I've recently started taking the CS50 course and have been writing code in my local environment. While working on a class exercise that requires including cs50.h, I encountered some issues with library installations and tried to find solutions to fix them. During my search, I discovered that CS50 provides Codespace as a solution to help students overcome these environmental obstacles.

However, I am wondering whether I should continue using Codespace, as I'm concerned that relying solely on it might hinder my ability to learn how to set up the development environment on my own in the future. While Codespace provides a convenient and pre-configured environment, I don't want to miss out on the valuable experience of learning how to build the environment from scratch.

I'd appreciate any advice or insights from the community on whether I should stick with Codespace or explore setting up my local environment. Thank you!

1 Answer 1


Your thoughts are indeed wise and well intentioned and you have good foresight. I would suggest the following in the spirit of the scientific method; by solving for one variable at a time and maintaining control. Thus I would suggest the following: use Codespace, and then after you complete the solution port it to your local environment. That way you are only fighting one battle at a time, in Codespace you are only solving the main thing you are learning in CS50, and then when you know that part is actually 'good' you can try solving the environment issues. In this way you won't have conflated issues and false errors where you aren't sure if the problem is code or environment configuration. And you will still gain the benefits of both experiences. You could also batch them. Solve a number of problems AND THEN try porting them one after the other to the native environment.

Later on when you are feeling more comfortable you could try using just local or local first.

In this way you will learn all of it in a manageable way. You won't become distraught with issues of environment setup hindering your actual learning of the main course material and keep the two cleanly separated.

An alternative would be to start with local, and then if you get an error that doesn't seem to make sense or that you don't understand try copy pasting your code into Codespace before asking for help or worrying like crazy if you don't understand what's wrong.

The most likely issues you will run into without their environment are going to be: issues with finding appropriate compiler or interpreter ( for C and python ), failure to find C header files or python imports for inclusion and linking failures in C if there is a library you need to link against while compiling. I can't speak as well to the issues you will face with problems in other languages but imagine they will be similar.. So if you go local first just keep track of exactly what kind of error would come from the environment and what would come from your own code. Whereas the number of issues you'll encounter while writing code the first hundred times or so are going to be extremely vast and varied. :-)

That is just my opinion having learned it all 'the hard way' and often times been frustrated or thrown off by issues early on that really weren't "mine" and which became a distraction from what I was really trying to learn.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .