, like some many others, gift us a great phrase respect vocation and passion: _“Find a job you like and you add five days to every week”. I_n my opinion the fact to be developer is a job that we have to do it with vocation, i mean, The tech world grow every day, Jackson Brown the inclination or interest that a person feel inside to dedicate a determind way of life or job. so if you hate learning, you are out… If we have for what we do, why not try to be a better professional every day? passion Right now, i will show you a list of topics that will transform you in a better professional. Is important to say, that learning all this stuff and is not a fast travel, so we are going to need a lot of and is not easy, effort perseverance. The last thing I will tell you is that it to be an expert in all these subjects, if you are, good for you, but as a developer if you are interested in learning more you will be better. The more knowledge you acquire is not necessary your preparation will be better. Mathematics: Mathematics is going to give you a logic necessary to program in a better way. Learn about arithmetic, algebra, discrete mathematics, geometry and statistics. Algorithms and Data Structures: For me, this is one of the three/four subjects that are . The more knowledge you have of algorithms and data structures (do not depend on the language) the more efficient you will be when it comes to solving day-to-day problems. Learn about piles, trees, Linked List, Queue, ordering methods, graphs, etc. fundamental Databases: This is the other subject that, in my opinion is fundamental. Like as developer is probably that you are going to be in contact with a database manager. Study and learn about SQL and NoSQL databases and when to use each one. This theme will make you grow as a professional in an extraordinary way. Computer architecture: Know how to a computer works is are going to give you a top picture of how and why things work. Learn how the microprocessor works, hierarchy of memories, hard drives, etc. Operating systems: You must know how your operating system works. Basically the O.S is the most important software, learn how it works to have a better approach when developing. Learn about commands, memory management, etc. Networks: Nowadays everything is connected, therefore knowing about computer networks is fundamental. Learn about protocols such as TCP / IP, FTP, HTTP, how the Internet works, servers etc. Paradigms and Design Patterns: This will give you a better way to develop computer programs, in each language there are different (sometimes not) paradigms and design patterns. Learn about object-oriented programming, functional programming, reactive, SOLID principles, etc. English: If you are not a native english speaker, like me (this is a good oportuniy to say sorry if i make any english mistake), know about english is fundamental, especially technical english, because most of the books, documentation, blogs, articles are written in english. Learn to speak, write, read and listen english. Teamwork: Today is mandatory to know about version control to work as a team. Learn about Git, Github, SCRUM etc. If you are in a team, humility is fundamental, you can not put yourself above your teammates, because it is a TEAM. And a team needs everyone helping and learning every day. ◾️ Ux Design. ◾️ Computer security ◾️ Robotics ◾️ Leave another one. Other Stuff: Some Online Resources: **Mathematics:**◾️ ◾️ ️◾️ ️ ◾ ◾️ ◾️ ◾️ ️◾️ ️◾ ◾️ ◾️ ◾️ ◾️ ◾️ ️◾️ ️◾ ◾️ ◾️ ️◾ ◾️ ◾️ ️◾ ◾ ◾️ ◾️ ️◾ ◾ ◾️ ◾️ ◾️ ️◾ ◾️ ◾️ ️◾ Others: write articles, see english courses, read books, talk with people, etc. ◾️ ◾️ ️◾ ◾️ ◾️ ◾️ ◾ ◾ ◾ ◾ ◾ Saylor Academy Khan Academy Coursera edX Algorithms and data structures: Introduction to Algorithms Programming Pearls Cracking the Coding Interview CodeFights Udemy Databases: Database System Concepts Database Management Systems Understanding MySQL Internals NoSQL Distilled Elasticsearch: The Definitive Guide The Ultimate MySQL Bootcamp: Go from SQL Beginner to Expert The Complete Developers Guide to MongoDB Computer architecture: Computer Organization and Design Computer Architecture: A Quantitative Approach Computer — High Performance Computer Architecture Operating Systems: Operating System Concepts Operating Systems Modern Operating Systems Udemy Networks: Computer Networking: A Top-Down Approach TCP/IP Illustrated, Vol 3: TCP for Transactions, HTTP, NTTP, and Unix Udacity Cisco Paradigms and Design Patterns: Head First Design Patterns Design Patterns: Elements of Reusable Object-Oriented Software Clean Code: A Handbook of Agile Software Craftsmanship Functional Programming in JavaScript English: edX Duolingo Teamwork: Pro Git Git & GitHub Tutorial for Beginners Scrum.org How to Win Friends & Influence People Humility: True Greatness Others: Teach Yourself Computer Science Network & Security User Expericence UX: Don’t Make Me Think Software Development SoloLearn I must mention a developer that i admire a lot, that gave me the idea to do this article: Alan Chavez You have my Github if you wanna follow me, i will thank you! Thank you 😊