Skip to content

abelosorio/how-to-become-a-senior-web-developer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 

Repository files navigation

--- WORK IN PROGRES ---

How to become a Senior Web Developer

Introduction

I'm trying to build a list of topics, technologies, or anything I need to become a Senior Web Developer. I want this list to not only helping me but anyone (actually any Web Developer) to become a Senior. I know that just knowing the following things is not enough, and we all need very many years of work experience. I also know that this list could vary depending on the specific language or web development branch we choose.

For those (like me) living in Latin America without a fluent spoken English, well... that is another must!

How to contribute - Please do it!

Give your opinion here. I think we could build a helpful list for anyone. Whatever language or technologies you use, we all need to know the basics, and that is what this list pretends to be. The basis, or the general topics we all need to know. And to know it very well.

The list

The very first thing: Programmer's Oath

If you're reading this guide it's because you're a programmer or you want to become one.

This is a profession. People often dedicate their lives to this career. There are grades, masteries, PhDs, and other kinds of specializations. Other people, including me, dedicate their lives studying by themselves.

This is something serious. Anyway, if you want to learn to programme just for fun it's OK too, but you have to do it respecting other programmers.

Robert C. Martin (Uncle Bob) presented a list of rules that every programmer should agree with, in order to create a community where respect is put first.

You should read, understand, and have this rules present in your daily work, code, and mind.

I recommend to watch first the YouTube video and then the oath itself.

Basics

  • Algorithm design techniques.
  • Calculation of complexity (Big-O notation).

Maths

  • Set theory.
  • Mathematical logic.

Programming paradigms

Functional programming

Logic programming

Object oriented programming

  • Design patterns
  • SOLID
  • DRY (Don't repeat yourself)
  • Duck typing

Databases

Relational

Yes, there are a lot of good ORMs and we may use them, but a basic acknowledgment of these technologies is very important as well.

  • Basic SQL understanding.
  • PostgreSQL.
  • MySQL.
  • SQLite.

Non-relational

  • MongoDB.
  • Memcache.
  • Casandra.
  • Redis.

Agile

  • SCRUM
  • XP
  • Kanban

Architectural patterns

MVC (Model-view-controller)

Front controller

Active Record

Testing

Testing levels (Unit, Integration, etc)

Testing types (Regression, Acceptance, Alpha, etc)

Software development techniques

  • TDD (Test-Driven development)
  • BDD (Behavior-Driven Development)
  • ATDD (Acceptance-Test-Driven Development)

Non-technical skills

Communication with both Clients and other developers (or team members)

References

These are books I have really read (related to this document, of course):

  • Understanding ECMAScript 6, by Nicholas C. Zakas. ISBN-10: 1593277571, ISBN-13: 9781593277574.
  • Rails, Angular, Postgres, and Bootstrap, by David Bryant Copeland. ISBN: 9781680501261, Google: L1T2sgEACAAJ.
  • Clean Code: A Handbook of Agile Software Craftsmanship, by Robert C. Martin. ISBN-10: 0132350882, ISBN-13: 978-0132350884.
  • Refactoring: Ruby Edition, by Jay Fields, Shane Harvie, Martin Fowler and Kent Beck. ISBN-10: 0321984137, ISBN-13: 978-0321984135.

Other links:

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published