Connecting...

Pexels Photo 693859

How to be a good programmer by Agnel Nieves

Pexels Photo 693859

There is always something new to learn and this is consistent across all industries. Agnel Nieves gives some great examples of how to stay up to date in programming and always be in the know.


'Now, better than ever, technology has become one of the most fundamental parts for innovation in all the industries. This resulted in a huge demand for programmers and developers all over the globe. The beauty of technology is that, it is very accessible, so…

YOU DON’T HAVE TO BE A ROCKET SCIENTIST TO BE A DECENT PROGRAMMER.

It might seem hard but the truth is… It can be easier than you think. you just have to read, practice, and put some effort. But… Isn’t this what you do on a daily basis?


The Basics

First thing’s first. Before you even start troubling your mind for a semicolon (Maybe you won’t get this now, but believe me. You’ll get it later on ) you’ll need a good computer science basics resource and a good text editor. Even tho there’s quite a lot of them out there, I’ll give you the most trendy ones

Basic resources:

Teach Yourself Computer Science

This website gives you a pretty good starting point to learn about Computer Science and programming. It covers a lot of Important basic topics and it helps you to get a good background on CS.


Git

Git is a version control system to…Well, maintain versions of your code. It allows you to go back to another version if you ever change something and anything goes wrong on the new one. This website is a good place to start learning git.


Github

This is a very important resource. Almost every programming company asks you to have experience with some sort of version control system. GitHub is a web-based hosting service for version control using git. It is mostly used for computer code. It offers all of the distributed version control and source code management functionality of Git as well as adding its own features. It also allows you to collaborate with other programmers. You could also use it as a static HTML hosting to store your personal project’s files. You can actually serve a website from within Github.


Bitbucket

Bitbucket is the same as Github, minus the social platform. Also another big difference between these two is that Bitbucket allows you to create private repositories and in Github you have to pay for this feature. You could also use it as a static HTML hosting to store personal project’s files. You can actually serve a website from within Bitbucket.


Learn the command

The command line is where most of the magic happens. So it’s really important to get some command line skills.


The text editors:

Sweet old Sublime. In my opinion, this editor is one of the best out there. It has a lot of plugins and code snippets. It’s also really reliable in terms of performance and productivity. I still use it, but I love to try new things so I recently switched to Visual Studio Code. Supported on: Windows, Mac OS and Linux


Visual Studio Code

Visual Studio Code was developed by Microsoft, even though is quite new, it has made its way to the tops text editors of 2017. So good that I ended up switching from Sublime text and I gotta say it’s a pretty amazing text editor. So far I’ve had no regrets. Supported on: Windows, Mac OS and Linux


Atom

This text editor by Github was my preferred choice. It’s really gorgeous and it’s very easy to set up. The only thing that made me switch back to Sublime is the fact that it can get pretty slow sometimes and it used to crash on me whenever I opened a minified file. But overall it’s a decent text editor. Supported on: Windows, Mac OS and Linux


Notepad++

Notepad++ is a basic text editor with the features needed to write a decent program. Some people prefer this one because of it’s simplicity. Personally, I find myself to be more productive on bolder text editors like VS code or Sublime. Supported on: Windows


VIM

Hacker, this one’s for you. This text editor is more technical and requires more configuration. It comes by default on Mac OS and most UNIX based systems. Supported on: Mac OS, Linux and recently on Windows


Remember: You could always use the text editor of your choice. These are just the best ones based on trends and my experience.​


With this being said, here are a few learning resources that will help you develop your programming skills:

Free Code Camp

Free Code Camp is a free programming learning path for web developers and full stack developers. This is one of the first resources I used to start my web development career. And I really liked it. They even provide you with real life non-profit projects to polish your skills.


Code Academy

Code academy is actually one of the best resources to start. It offers an overall basic programming experience. It also has a live text editor right on the lesson page so you can practice while learning.


Ruby Monk

Ruby Monk is a very good starter tutorial to learn Ruby. It offers a simple, straight forward course for beginners and is really easy to follow.


CodeWars

Code Wars is a really cool way to learn coding. It offers you the opportunity to sharpen your skills by interacting with other people on real code challenges.


Railsforzombies.org

This is another cool way to learn programming, although I recommend having some basic knowledge on Ruby before trying this site. This website allows you to learn Ruby with an interactive game.


CodeSchool

CodeSchool offers a rich variety of courses with a learning path that allows you to determine which programming track to follow based on your interests.


Egghead.io

This resource is one of my favorites. It focus more on web development technologies. It offers really high quality coding tutorials and courses to better develop those Javascript skills.


Udacity

I’ve only used Udacity a few times, but I’ve read a lot about it and it’s pretty awesome. They offer free courses for beginners and What they call “Nanodegrees”. Nanodegrees look pretty promising, they are basically curated list of beginner to advanced courses for a specific topic. For example, the Full Stack Web Developer Nanodegree covers everything from, front-end web development to back-end web development. I have to point out that these Nanodegrees are created in collaboration with big companies like Google, Amazon, IBM and more. Now, I don’t know if this courses are actually worth the money (because they are expensive) but I’m planning to take one so when I get to it, I’ll make sure to write an article about it.


Udemy

Almost forgot about this one. Udemy is perhaps one of the most popular learning platforms. They have over 15,000 courses and they are usually pretty cheap. This resource is pretty good for when you are on a rush and need to learn a certain skill fast. I used this resource a lot when I was in college (Currently have over 80 courses). Even though I have to admit, I’ve not finished each and every one of them.


Devslopes

Devslopes started as a Kickstarter campaign and I immediately fell in love with it. It offers a variety of high quality programming courses with projects to use on your portfolio. As an early backer I got the chance to contribute to their project and in exchange I have lifetime access to all courses and versions they release, for free. Now, if you want to have this perk you might be able to have it because they’re about to launch Devslopes 2.0 and they had a promo on it. Not sure if it still available though. But it’s one of the best deals I’ve got. After all Knowledge is priceless.


Treehouse

Frankly, I never considered this one before, but after being suggested by Tomáš Vorel and weeks of showing up on Facebook & Youtube ads, I decided to give it a try. I gotta say, this learning resource is very well organized and I absolutely love the teaching methods. They always have some visual representation for the topics and I really love visual content.


BrainFood

Yes, you still have to read if you want to get really good at this. This is the most traditional and sometimes the most effective way to learn new skills.

This is a list of books I’ve found useful:

Computer Science Distilled

This book might be a little bit “Boring” but it covers the basics of computer science and algorithms. This book is a must if you really want to understand how code and algorithms work.


Cracking the Coding Interview

This book covers a general overview of programming questions you might be asked on a job interview. And how to approach them.


The Innovators: How a group of Hackers, Geniuses, and Geeks Created the Digital Revolution

This book is more about the history of innovation and technology. It basically covers all the people who contributed in some way or another to the technology that made today’s innovation a reality.


Learn Python the Hard Way

This book is basically a workbook. You learn while practicing. It gives you challenges for you to practice on a daily basis. It covers the very basic topics on python.


Soft Skills: The developer’s life manual

The software developer’s life manual is a unique guide, offering techniques and practices for a more satisfying life as a professional software developer. In it, the author addresses a wide range of important “soft” topics, from career and productivity to personal finance and investing, and even fitness and relationships, all from a developer-centric viewpoint.


Get Involved in the Community

This is one of the most important parts of becoming a good developer. Most of the people skip this part because they think it’s useless but the truth is, IT HELPS A LOT. You will be amazed of just how much you can learn of an hour or two of talking with other developers. Just to give you an example, in my first meetup I had the chance to meet one of the developers of Advanced Custom Fields (A globaly acclaimed Wordpress plugin for developers) I actually use this plugin a lot. And I also managed to become a staff member for the Wordcamp Miami 2018 Wordpress Conference.

With that being said, here are some of the platforms I use for meetups and conferences:

Eventbrite​

This app allows you to look for coding conferences nearby.


Meetup

This app allows you to look for coding conferences nearby.


Co-working spaces

You could easily find a nearby co-working space just by looking up “Co-working space <YourCity>” . Co-working spaces allow you to share knowledge with other developers and getting real feedback on your codebase.


Playgrounds

Playgrounds are basically virtual editors to practice on the go, without the need to overload your laptop or PC. This helps you save time and get better at any programming language. The best part of these virtual playgrounds is that you can access them from everywhere.

Cloud9

This virtual playground is actually a full featured IDE based on Linux. what this means? It means that you could do everything you do on a Linux machine via the terminal, even install libraries. This one helped me a lot in college.


Codepen

I use this one a lot. Codepen is the Holy grail for web developers. It is more of an online community for testing and showcasing user-created HTML, CSS and JavaScript code snippets.


Glitch

Glitch is almost the same concept as Codepen. Except it’s a little more “friendly”. It’s pretty powerful as well. I still like more Codepen tho.


Orion

Orion is an online IDE to play around with Java.


Python Fiddle

Python has gained a lot of popularity in the past years. This is a coding environment for those of you who would like to add python to your skillset (you should learn at least the basics).


Codeanywhere

Codeanywhere is a cross-platform cloud IDE. It enables users to instantly write, edit, collaborate and run web development projects from a web browser and any mobile device.


Reply.it

This one was suggested by Vic A. and I gotta say, it looks pretty promising. This virtual programming platform allows you to create virtual playgrounds to develop, test and even deploy applications. It also includes a pretty awesome teaching platform feature with it’s own grading system.


Codesandbox.io

I came up with this neat resource while I was attending on the 10th Miami Wordcamp. One of the speakers used for a live coding demo and I fell in love with it. It’s another quick and reliable cloud based solution to create application prototypes on the move.


Got Stuck? Ask someone

The beauty of being a developer living in the 2018, is that there’s a lot of people that already went through most of the struggles you’re going to have. There’s a high chance that someone else had the same problem you are having with a piece of code. Unless, you are working on a proprietary code. And even so, you should be able to find hints on how to tackle those nasty bugs. Now, this is all based on my experience.

Here are a list of sites and resources to help with the struggle so you don’t end up with existential crisis, crying in the corner. (I’ve never done this):

Stack Overflow

Also known as the programmer’s bible. Stack overflow is one, if not, the largest online community for programmers to learn, ask, share, and even find a job. So be sure to have this one on your favorites tab.


Stack Exchange

Stack Exchange is a simple question and answers website. Kind of a forum, to help you clear those coding doubts.


Quora

I see Quora more like a pro version of Stack Exchange. Quora is a place to gain and share knowledge. It’s a platform to ask questions and connect with people who contribute unique insights and quality answers. This empowers people to learn from each other and to better understand the world.


Github

Again, Github is one of the most used online communities out there. Make use of it, learn it, share it and contribute to it.


Twitter

I bet you’ve already heard of this one. But have you thought about using is as a resource to learn and answer questions? Well, let me tell you that Twitter, with it’s large amount of users, has a good quantity of experts in the matter. Just tweet your question and hash hash tag tag ### it


Reddit

No, it’s not just for Meme’s and gifs. Reddit can also be a powerful resource to finding solutions or learning new technologies. It features a thread system to better organize topics.


Hacker News

This resource is a very simple feed of important updates and news on the tech industry. Really useful.


Producthunt

Now, Producthunt… I can’t express how much I love this website. I literally use this on a daily basis. It constantly releases a curated list of new tools, apps, frameworks, websites and even gadgets to look for. For the most part is all tech related! So you always get to try and learn new stuff. It also features a job search and a section for questions and answers.


Conclusion

Read, Practice, Share, Ask…Repeat​
This is all a learning path. Just commit to it and have a lot of patience. No-one was born being an expert on what they do. I still have a lot to learn as well. Remember, one of the most important parts of becoming a good developer, is to actually forming part of the community. So, give yourself the chance to try something different, go to a meet up, meet new people, get some feedback, criticize some code and have some fun.'


This article was written by Agnel Nieves and posted originally on Medium.com