DEV Community

Cover image for How I set my Linux computer for coding
David Mendoza (He/Him)
David Mendoza (He/Him)

Posted on • Edited on

How I set my Linux computer for coding

Hello guys, it's me again today I'm going to show you what's my setup for a Linux machine take in mind I'm not talking about a RPI or a server, I'm talking about a full flesh developer's pc, for this example I'm using a computer with ubuntu 19.10 installed.

Most of this are just small lists so you know what they are, and I will add a command or two while write them (Most how to install them)

Packages

Here you will see some programs that they are easily installed with apt, that is why i decided to separate packages and software.

build-essentials

If you didn't knew, build-essentials is literally what it says, the essentials to build a lot of software, mostly I use it to install g++ and gcc, c++ and c compiles and make, software used to make a compilation more human.



sudo apt install build-essential


Enter fullscreen mode Exit fullscreen mode

python3 and pip3

When i finnished my programming course on college, the first thing I tried to learn was python (I did good i think), and looking that python2 is getting deprecated this year, why not python3? Mostly I use it when I'm trying to learn ML and Django (never quite understood Django)



sudo apt install python3 python3-pip


Enter fullscreen mode Exit fullscreen mode

Node.js and npm

I mean... come on? node.js and npm are like the heart of tons of projects now a day, with web development trying to replace software development, I use this two for most of my web projects.



sudo apt install nodejs npm


Enter fullscreen mode Exit fullscreen mode

Expo

I use expo for quick and dirty react native apps, for me is the best absolutely, you should give it a try if your pc isn't really powerful but you want to make apps.



sudo npm install -g expo-cli


Enter fullscreen mode Exit fullscreen mode

CRA (create-react-app)

I Know its not the best, but it makes the cut plus is kind of fast, but I use it to make my react project templates



sudo npm install -g create-react-app


Enter fullscreen mode Exit fullscreen mode

Git

I don't even know why i left this for the last... I mean... git man, is like the most used command I have on my pc, I dont even need to let you know what i use it for.



sudo apt install git


Enter fullscreen mode Exit fullscreen mode

Vim

I like to experiment with server and stuff, and most of the times they have a "sudo protected" file and I need to edit it, so I just use vim, it can be a B!tch but I like it.



sudo apt install vim


Enter fullscreen mode Exit fullscreen mode

Fonts

If you are new to coding, you might be thinking "WHY THE F!@K do I need a font for?"
Well let tell you that fonts are really important, you wouldn't like stare at a ugly font for 5+ hours right?

Fira code

So give fira code a chance, here is the GitHub page, since it depends on every OS, how to install them.
Fira Code

Edit
A good friend of mine did this tutorial

Software

VS code

I use vs code as my main code editor,I think I don't need to elaborate. I installed it from the Official Site

Thunder bird

I use thunder bird obviously for my emails, It was my first email app, and its still going, you can actually install this one with a command.



sudo apt-get install thunderbird

Enter fullscreen mode Exit fullscreen mode




Random programs I use (You might like one)

  1. Popcorn Time - I Love watching movies (not while coding though...)
  2. Transmission - Illegal stuff you know... movies hahaha.
  3. Gimp - Simple to use image editor.
  4. Libresprite - Ok so this one my first program compiled by myself, let me know if you would like to learn to do so.

So this was my first actual "long" post, if you liked it please let me know. That way I might Start making more "long" posts

Latest comments (81)

Collapse
 
moopet profile image
Ben Sinclair

Transmission isn't illegal, or indeed for anything illegal.

However, I wouldn't promote the illegal use of anything here, especially not software or content piracy as with Popcorn Time.

Collapse
 
mendoza profile image
David Mendoza (He/Him)

I know it's not illegal but I have used for downloading games and movies that are paid...

Collapse
 
aniganesh profile image
Aniganesh

What does libresprite do?

Collapse
 
mendoza profile image
David Mendoza (He/Him)

It's an opensource version of asesprite a pixelart editor

Collapse
 
rubiin profile image
Rubin

I advice against installing nodejs directly. It becomes a hassle to switch between node versions so instead using a nvm for managing nodejs looks a better alternative

Collapse
 
itjusthitme profile image
Donald W Norman

David,
First of all, my wife is Honduran and was a lead QA tester before retiring. She is from Tegucigalpa as well and grandparents were in Trujillo. I appreciate that you put yourself out there with your "first long post". Most people allow fear to hold them back from doing something like this. I've never written a post to any tech site. I don't think I have anything to offer as I am just now, at 60 yrs old, teaching myself to code. So good job!!

Collapse
 
goodevilgenius profile image
Dan Jones

As many people have mentioned, if you're working with node, a node version manager is essential, since you may have different projects that require different node versions.

Most people recommend nvm. I used nvm for a very long time, until I found nave. I definitely prefer nave now. For each project, I can create a .naverc with the required version. Then, when I start working, I do nave auto path/to/project/root. It creates a subshell using the required version of node, and when I'm done, I can just exit that subshell, and I'm back to my preferred version of node.

Collapse
 
aimerib profile image
Aimeri Baddouh

I'm surprised nobody mentioned tmux yet. Tmux is a terminal multiplexer, so it allows you to have split panes, multiple "windows" and more importantly, it allows you to disconnect from a session, then reconnect to it again and never lose the status of any of your screens.

By far my favorite development environment tool of late

Collapse
 
yeraycat profile image
Yeray Catalá

I'd change nodejs to nvm.

It will make your life really easier if you need to switch node versions.

Collapse
 
mendoza profile image
David Mendoza (He/Him)

I know, but for the simplicity of the begginers I just putted npm, I don't think that they would download someone's else project right away

Collapse
 
oziniak profile image
Oleh Ziniak

I've seen a lot of people finding out about nvm way too late, leaving pain reinstalling node. Because sometimes even minor versions matter. In the ruby community, they learn about rvm right from the start. And I've noticed a lot of people suggesting it here from real-life experience. So I guess it would be great if you could edit an article. Don't get me wrong, it is awesome, but may be even better. Cheers!

Collapse
 
alexisfinn profile image
AlexisFinn

Over the course of years programming with linux, I've gone through a lot of stuff. But there's always some new stuff that when I give it a go I can no longer do without it, here are a few recently discovered utilities that are definitely staying for the win:

RipGrep: Search through files for a pattern at lightning speed
github.com/BurntSushi/ripgrep

fzf: Filter search results with ease
github.com/junegunn/fzf

z: Jump easily and quickly between your most often used directories, without all that cd nonsense
github.com/rupa/z

tig: Terminal interface for git, pretty sexy and usefull, I would recommend adding an alias tig='tig status' as it starts by default in tree view, but most of the time what I want is to see current status and prepare to commit.
github.com/jonas/tig

Collapse
 
alexisfinn profile image
AlexisFinn • Edited

Forgot another of my favorites:

Bat: A cat replacement with syntax highlighting, you'll never use cat again
github.com/sharkdp/bat

Collapse
 
mendoza profile image
David Mendoza (He/Him)

Damn! All of them sound amazing, let's hope beginners read the comments and see this one

Collapse
 
twitch0125 profile image
Kaleb Ercanbrack

Give Cascadia Code a try

Collapse
 
mendoza profile image
David Mendoza (He/Him)

Oh damn... Oh damn... it looks awesome, I downloaded it and opened a c++ project, it looked awesome, opened a js project, IT LOOKED AWESOME.
Man this is a great font BUT I have come to see a font that i look more than dank mono its beautiful and it has cursive AND ligatures... I mean its paid... but I'm saving to buy it (its 40.00£)
take a look at it.
dank mono

Collapse
 
twitch0125 profile image
Kaleb Ercanbrack

Ahh I've been debating if I should get Dank Mono haha. I wonder if I could get my work to pay for it :p

Thread Thread
 
mendoza profile image
David Mendoza (He/Him)

I tried it on their site and I fell in love man hahahaha

Thread Thread
 
twitch0125 profile image
Kaleb Ercanbrack

Check out Victor Mono, very similar to Dank Mono but it's free :p

Thread Thread
 
mendoza profile image
David Mendoza (He/Him)

Exactly hahaha it's awesome

Collapse
 
ojoanalogo profile image
Alfonso Reyes

Great post David! I love reading detailed and concise posts like yours ;)

I'd like to recommend to install "nvm" instead of the node binary, since you may find some projects where your node installation needs to be an older version o newer. With nvm you can manage your node versions with ease.

Btw is nice to see other latam folks here on DEV, keep it on!

Collapse
 
mendoza profile image
David Mendoza (He/Him)

Thanks for the compliment, its my first long and concise post, but I see people liked it so I might write more,

You are completely right for the nvm but I didn't included just because of the simplest way for a beginner to start.
Btw Honduras here, where are you from?

Collapse
 
ojoanalogo profile image
Alfonso Reyes

Well yes, I agree with you on the nvm comment, although when I started I wish i had learn to use nvm first haha.

And yes, congratulations on all the positive feedback you are receiving, I hope to see more posts of your authorship.

Mexico here, saludos :D

Thread Thread
 
mendoza profile image
David Mendoza (He/Him)

Thinking about it... they are some times i needed an old npm... you are right hahaha

I just posted a quick tutorial on makefiles, and I had one on readme files just in case you are interested

Saludos Mexico Ten una buena semana amigo :D