Learn to Code For Beginners
In this day and age, learning to code can give you a huge edge. We live in a time where IT has become ubiquitous. Almost every field of work and industry has either embraced or is seriously considering the inclusion of concepts like Big Data, IT, web development, and so on. A bit of coding knowledge can take you a long way.
Thankfully, modern-day coding is a lot easier than what it was before. For non-developers, learning to code can seem very daunting. But there are a lot of tools online, both free and paid, that make it easier to learn to code. Depending on the time available, you could learn to code in a matter of eight to ten weeks. It could take longer or even less. It’s all up to you, but learning coding is not as far-fetched and impossible as it was before; it is definitely doable.
Here is a look at some of the steps and key things you need to follow and know in order to learn to code. Explore more about these them online, and you will be able to create your own prototype in no time. Remember to keep learning and practicing, though. Constant practice is what makes any developer better.
Introduce yourself to the key and code terms
For many people, what makes coding seem confusing is its terminology. So familiarize yourself with the key terminology of coding. The key challenge to building a prototype is that there are a lot of components to know about. Here’s an overview of some of these components, but remember that it may take some time to fully understand them all. In some cases, you may not understand them completely even after you build your prototype.
Let’s understand these components by describing the entire process of a user visiting a website. First, they type in your website address or URL. Once they press enter, the browser sends a request via the internet to a machine that runs the website. This machine is the server.
Servers are essentially computers that contain all the content, data and coding to run your website. It receives requests from other client/user computers. You could buy your own server, which is expensive, or you could rent storage on them, which is what most individuals or small/medium enterprises do. Amazon Web Services, Slicehost and other popular web hosts are available. The server contains software that handles the user request. This software is called web server, our next big component.
Web Servers are software on your server that receives and sends requests and responses from and to the user. The requests and response are usually in Hyper Text Markup Language (HTML), which is the universal language on the internet. Nginx an Apache are popular web servers. While you do not have to get your hands dirty too much on web servers, you do need to know how to at least restart the server, since server issues are the most type of problem faced by any web developer or website operator.
So now we know what a server and web server does. The user sends a request to the server, and it’s time for the server to respond. The server has to deliver data specific to the client’s request and display that data in a format understood by the user’s web browser. How does it do that? It sends the request to our next major component: web application framework.
Web Application Framework:
Web application frameworks are probably the most important component for a web developer. They are responsible for receiving requests and generating a HTML page to be sent back to the user. All the work is done here. Ruby on Rails and Django, built in Python, are popular examples and the best ones to start with. When we talk about best code to learn for beginners, this is where you would spend most of your time because this is where all the coding will happen. It is not super-critical to learn each and every detail about the framework that you choose; you’ll get the hang of it over time and practice. You need to know enough to develop data structures and loops. For tools, you can do most of your programming on Textmate. GitHub is a good option for managing your revisions.
So, the web app framework does all the hard work, but it actually doesn’t store the data. Where is all the data based? At the database: our next major component.
Databases store all the data for your website and web application. They are like really huge Excel spreadsheets with row after row of data. MySQL is one of the most popular databases. While you should learn to run basic queries off the database and how to alter the structure, you can use the framework itself to control how to interact with the database.
So you have the web app framework to handle creating your HTML pages and sending it back to the webs server. But you still need to develop the templates in HTML and CSS, which make up the next major component.
HTML and CSS:
HTML is the universal format for web pages, and Cascade Style Sheets or CSS is the additional file that is used to style the HTML. This is actually one of the easiest parts of learning to code. It is not programming ,but knowing this can give you a huge edge. You could be up and ready to write your own HTML page within weeks. As for tools, Firebug on Firefox is one of the best tools for learners. PSD2HTML is also recommended to turn Photoshop files into HTML.
Familiarize yourself with the Development and Production environment
You will have a development and production environment when you launch a website. The development environment is basically where you will work on your prototype. Normal users won’t have access to this part of your site. It is essentially just a working version of your website with code et al running on a local machine. This is better done on a Mac than a PC.
The production environment is where the live version of your website will be located. This is what your user will be able to access. You work on your development environment and then push the final product onto the production environment.
More Acronyms and terms
There are a lot of other acronyms and terms used regularly while coding. Now that you know the major components, however, these acronyms should be much easier to understand and fit into the larger picture. Here is a look at some of the most popular ones:
Perl, Java, PHP: these are programming languages like Ruby and Python
- XML: it is a format similar to HTML and is typically used by APIs (see below)
- API: an API is essentially a way for websites to interact with each other. For instance, if you want to display certain content or elements from another website, you use that website’s API. So your website sends a request to the other website for that content or element, and the website sends you back an XML file containing the requested content. Your website then reads that XML files and puts it up.
Now that you know the terms and acronyms and major components, it is time to roll up the sleeves and learn some coding. Start off with an introductory understanding of Python and whatever web app framework you choose to work with. If you choose Python, here are some good options:
Learn Python the hard way: the format sounds tough, but it actually gets you to understand the basic concepts easily. Most lessons take ten minutes or less. But once you get to the more advanced concepts, this may not be the right tool for you.
Google Python classes: you will find a lot of videos and notes available here, as well as associated exercises. Solve these exercises on your own until you get them right without referring the answers. The whole experience of struggling with the exercises can be a huge learning tool.
There are lots of other resources available online. It’s recommended to join a few of them and do the first few lessons from the options available before you select one. Once you complete one resource, you can go through others to find concepts that you are not fully familiar with and to get more practice.
There is a really helpful Django Tutorial that can help you learn almost everything you need to know about the tool. Work through the tutorial to form your code, and then delete it all and work through it again. Remember that practice makes perfect. The first time you follow the tutorial, you will probably just follow the step by step instructions without actually understand each step. As you do it more often, you will get used to the concepts and better focus on how the parts work together.
Learning more about Python and general programming
At this stage, you have your foundation ready and it is time to learn some more about Python and general programming. There are lots of options available once again. Here are some of them:
Intro CS class from Udacity: The courses generally have seven sessions and are self-paced, so don’t worry about deadlines. The Intro CS class typically takes two months, and it is highly recommended that you go for the intermediate programming class after this, or the web development class too.
Intro CS course, Unit 1 from MIT: This is a very well-taught course and is also quite approachable. Search around some more online to find out more such resources, and sample them to find out what works best for you. You could even do more than one to strengthen your knowledge.
Practice, practice, practice
Now you should have all the skills and knowledge to at least build your own prototype. But it’s not going to be easy. And you will probably not succeed right away. Start with some exercises in Django for an example. They are not as hand-holding as the Django tutorial, but they still give enough guidance for those of you not yet ready to take off the training wheels.
Build the prototype
You have the skills, knowledge and practice. Now it’s time to actually build your prototype. At this point, you could build it within a weekend too! Bear in mind, you may not like the final results, but it is a starting point, and at the end of it you do get the satisfaction of seeing the results of your own coding.
By the end of all of this, you will go from ‘what’s coding?’ to building a functional prototype. That’s worthy of praise right there. But remember that the journey is far from over. In fact, it’s just starting. Continue to build prototypes as and when you can, and try different ones. Keep going at it and you could become a formidable developer within months.
You can also get into the components that are more complicated, like the web server and database. Even if you do not become a core programmer per se, you will still have a very clear understanding of how the development process works, and you will be able to give clear and relevant inputs to a development team. Moreover, you would have a better sense of what can be done and what is impossible, and how long it would take to get things done.
Here are some articles that will help you to get more detail about the Code so just go through the link.