We live in the world of start-ups and freelancers. If you want to make it in such a world, you need to be equipped with the necessary skills. Big organizations can afford to have developer, designer, tester etc. roles assigned to different persons. As a freelancer, start-up or small organization, such roles assigned to different persons may be too costly. It is far much more preferable to have a single person who can work comfortably in all of the above roles.
Gone are the days when one needed to know only one language/technology and get away with too. These days, you will need to know more than one language/technology. This is where the full-stack developer comes in. In a nutshell, a full-stack developer is comfortable working in both the back-end and front-end environments.
Let’s examine these roles separately.
Typically, back-end developers are much more focused on what happens on the server-side. This includes writing the code that responds to front-end user requests and interacting with the database. Typically, one will need to know more than one of the following
The following are some of the languages that you should know.
My favourite poison of the web. PHP is a scripting server-side language. You can use PHP to interact with the database, developer APIs and do a hell lot of things. PHP is open source and almost supported by all hosting environments. This makes it the preferred server-side scripting language.
As a full-stack developer, having knowledge of PHP is almost a must. It is a massive advantage but you will need to prove yourself to your employers or clients. A certification is one of the major ways of proving that.
Zend provides one of the world-wide PHP certification programs. Let’s look at some of the certification
- Zend PHP Certification – this certification will make you get recognized as a PHP Developer worldwide. This certification will set you apart from the rest in the eyes of your employers and clients.
- Zend Framework Certification – PHP is an awesome language for building web applications but employers and clients need you to focus on their business needs and not the nuts and bolts of the language and industry accepted architectural designs. This is where frameworks come in. a framework will provides you with a skeleton that you can use to build your applications. a framework allows you to focus on the business needs and it handles the technical and architectural needs for you. getting a certification such as Zend Framework certification will open many doors for you.
Apart from Zend certifications, you can also get other certification such as - Laravel Certification – Laravel is one of the most commonly used PHP frameworks. Having a Laravel certification will prove to your employers and clients that you are competent when it comes to dealing with back-end PHP technology.
These are not the only PHP certification but having these, will help you go a long way. If you are aiming for the Zend certifications, then I recommend the book Zend PHP Certification Guide 5.5: A programmers guide to PHP as a study guide.
Ruby on Rails
Ruby on rails is another popular MVC framework built on ruby. Just like PHP, Ruby on rails is open source. You can use ruby to create web applications and APIs.
As of this writing, no Ruby on Rails certification program exists but if you can, you can get certified as a ruby developer.
- Ruby Association Certified Ruby Programmer – rails in built on ruby so getting a certification in ruby can give you an added advantage when you show your employers/clients
- Agile Web Development with Rails – this is an excellent book on ruby on rails to get you up and running.
ASP is the acronym for active server pages. It is a web development language developed by Microsoft and runs on the .Net framework. Microsoft offers a number of certifications such as for a wide range of topics.
- Microsoft Certifications – on this page, you will find a number of certification including web applications development.
JSP is the acronym for Java Server Pages. It is powered by Java and used to create web applications.
Oracle provides a certification program for Java EE 6: Develop Web Components with Servlets & JSPs that will make you stand out from the rest. I recommend Head First Servlets and JSP: Passing the Sun Certified Web Component Developer Exam as a study guide if you would like to get JSP certification.
In today’s world, almost all applications must store data in the database. Data is literally the blood line of all modern businesses. Knowing about databases will help you to go a long way
MySQL is a client-server relational database management system. It runs on all operating systems and is mostly used with PHP. It supports tables, views, triggers and stored procedures etc. You can also use it with other programming languages such as Ruby, Java, C# etc.
Murach's MySQL, 2nd Edition is a great learning resource for MySQL if you would like to get certified.
Microsoft SQL Server
SQL Server is a commercial relational database management systems developed by Microsoft. It is most commonly used with ASP.Net but you can also use it with other languages i.e. Java, PHP etc.
Microsoft offers a number of certifications regarding SQL Server. The entry level certification is Microsoft Technology Associate (MTA) which focuses on databases. The Microsoft Certified Solutions Associate (MCSA) focus on SQL Server 2012,2014 and 2016.
If you want to study for Microsoft Certified Solutions Associate (MCSA), Training Kit (Exam 70-461) Querying Microsoft SQL Server 2012 (MCSA) (Microsoft Press Training Kit) is an excellent study guide that I highly recommend.
SQLite is an embedded relational SQL database. It is commonly used on mobile devices i.e. smart phones. You can also use it when working with web applications. As of this writing, SQLite doesn’t have an official certification program but you can contribute / developer an open source program that uses SQLite and offer it as proof to your potential employers / clients.
I recommend the book The Definitive Guide to SQLite (Expert’s Voice in Open Source) for polishing up your skills in SQLite.
Oracle is another popular relational database management system developed by Oracle. It is most used by big corporations.
Oracle offers a number of certifications for its products. If you would like to get an oracle database certification, then this book OCA/OCP Oracle Database 12c All-in-One Exam Guide (Exams 1Z0-061, 1Z0-062, & 1Z0-063) will help you to pass your exams
In addition to possessing the technical skills, you will also need to know about project management and development methodologies.
Agile Development Methodologies
Agile development is a term that is used to refer to development methodologies that favour incremental and iterative development practices. Some of the most popular methodologies include;
- Extreme Programming (XP) – XP aims to improve software development quality and responsiveness to changing user requirements. This is achieved by favouring short development life cycles and frequent releases. Feedback loops are and checkpoints for new requirements very critical to successfully using XP.
- Scrum - Scrum takes a flexible, and holistic approach to iterative and incremental software development where a team works as a unit to reach a common goal. These teams are self-organizing, work in close physical proximity and encourages face-to-face communication among all team members. Scrum is responsive to changing user requirements. The three major roles of a scrum team are product owner, development team, and scrum master
The scrum institute offers a number of certifications on Agile methods that will make you stand out in the crowd. If you would like to be certified as a Scrum Master, then I recommend this study guide Scrum Master Certification: PSM Exam: Preparation Guide and Handbook (scrum master certification, scrum master, scrum, agile, agile scrum)
Development Tools / Techniques
In the good ol’ days, one only needed to know a single programing language, develop something functional and get away with it. Things have changed these days. In additional to knowing at least more than one language. Your skill set should also include the following
- Version Control – software is a living entity that is constantly changing. New features are always being added. This may introduce bugs and at times one needs to roll back to the previous state. We also need to keep track of who is doing what to the code base. The old fashion way of doing it was to copy and paste then rename and keep a number of backups. Version control offers a superior solution to this problem. It allows us to keep track of the changes we make to the code, create experimental branches when adding new features and if they pass the tests merge them into the master branch. One of the most commonly used version control software is Git. At a minimum, you should at least know git.
- Test Driven Development (TDD) – when I just started programming over 10 years ago, I would often get into arguments with my supervisor. I make a change in module X and suddenly module Y stops working problem. The supervisor would claim I changed module Y too and I would swear to the gods I never touched module Y. Test Driven Development solved the problem. Generally, when using TDD, one writes a test that fails on purpose (red), then writes only the required code to make it pass (green), then re-factors the code (blue). Testing comes in many flavours unit testing (testing individual components), integration testing (testing all system modules as they interact with each other) etc.
In my experience, using version control and test driven development has made my life easier and earned me respect of my colleagues and clients. The quality of the software has greatly improved and am able to add features within the shortest possible time without breaking much of what was already existing.
The general rule I use is use version control to create a development branch, add new features using test driven development and only merge the new features if all tests i.e. unit and integration tests pass.
Front End Developer
Hyper Text Markup Language (HTML) – as of this writing, the latest version of HTML is 5. It comes with a lot of cool features that you must know. Web pages are literally build using HTML.
Cascading Style Sheets (CSS) – another critical component of building web pages. CSS provides you with the styling that makes the web beautiful.
CSS Pre-processors – these enable you to speed up your CSS development. CSS pre-processors such as SASS and LESS process your CSS code before publishing to make the code cross-browser friendly and well formatted.
Responsive and Mobile Designs – your interfaces need to be able to respond to the size of the design and mobile devices.
As you can see from the above list, the backend and front end developers needs to know a lot of things. A full-stack developer needs to know all things. In my experience, knowing everything and mastering them all is a very tricky thing. I am more comfortable on the back-end but I understand the basics of front end development.
For most of my freelance projects, I usually buy HTML templates from ThemeForest then I customize them to meet the requirements of my clients.
Following the methodology described above and taking advantage of a market place such as ThemeForest has really turned me into a rock star full-stack developer. Rome wasn’t conquered in a day. You too can do it if you have the will power and patience.
ThemForest really believes in giving back to the community. Every month you can download free resources from all the market places i.e. ThemeForest, Codecanyon. Videohive etc. all you need to do to download the free gifts is to sign up for a free account.
Let us know what you think in the comments section below. Thanks.
Please support us by creating a free account on our site, sign up for the newsletter, follow us on twitter and share the tutorial on social media. Thank you very much for your support.