Guidelines to general development. Made by @frvs.
Note: for this guide I've use Markdown Cheatsheet. Check for more info about Markdown.
Use Semantic Versioning or SemVer, the commonest versioning system.
You probably have seem it before: something like 1.3.2
version. Telegram changelog is a good example.
Also, check about how to keep a good CHANGELOG.
On a personal project, isn't common to make a good using of branching.
If you're working for a company or pretends, take a look at Git Flow to help you.
Soft skills makes a huge difference.
Learn to communicate properly, to ask for help and to listen more.
Asynchronous communication is a good way to start it.
Make your code maintenable.
Check for the Github Guide and a handbook to learn more about.
Make your projects open to contributions is a good practice.
Look for some examples to create your own guidelines: a good contributing.md template and Github guide.
Make sure to read the guidelines from the Open Source Projects (OSS) you want to contribute.
Personal opinion: unit tests are indispensable and all developers must implement it.
You can look for test-driven development or other kinds or n-driven developemnt (BDD, DDD) if you want.
Other common test types are stress tests and integration tests. Check that if you're developing something important.
Most of production software in 2020 are client-server applications.
Based on that, you should know something about ways to comunicate on the both sides of your application.
Years ago, you could use Simple Object Access Protocol (SOAP) to do this. However, Representational State Transfer (REST) is the present.
Learn about RESTful APIs.
Being able to know what's going wrong in your code is essential.
In my junior developer experience, isn't common to do code without any error.
Learn to read stacktrackes. Google it from your favorite language: e.g. how to read [dotnet/your language] stacktrace
. This must be useful.
Atomicity is a common topic on technology development.
You could heard about it in databases, front-end patterns and so on.
Here, we want to talk about atomic commits best practices.
Since DevOps turned into a technology keyword, the full cycle developer became more and more valuable.
It'll be nice if you're able to code and deploy your application. There are two main options:
You're a newbie on programming and don't want to care too much about it, start here.
The Vercel product, Now, is a place to deploy your apps just connecting to Github. It's awesome.
For back-end focused alternatives, Heroku is awesome too. Take a look.
Otherwise, I'll probably face a Dockerfile plus .yml file (stands to pipeline file) to deploy your application.
Look for some Dockerfile guide and google a tutorial for your favorite deploy player pipeline configuration.
e.g. google: [circle ci/other player] pipeline configuration
There's a confusing difference between Documentation/reference guide, How-to guides and Learn-by-example guides.
Take a look at Divio. It covers the differences and how to read each tutorial.