Lorem ipsum dolor sit amet, consectetur adipiscing elit lobortis arcu enim urna adipiscing praesent velit viverra sit semper lorem eu cursus vel hendrerit elementum morbi curabitur etiam nibh justo, lorem aliquet donec sed sit mi dignissim at ante massa mattis.
Vitae congue eu consequat ac felis placerat vestibulum lectus mauris ultrices cursus sit amet dictum sit amet justo donec enim diam porttitor lacus luctus accumsan tortor posuere praesent tristique magna sit amet purus gravida quis blandit turpis.
At risus viverra adipiscing at in tellus integer feugiat nisl pretium fusce id velit ut tortor sagittis orci a scelerisque purus semper eget at lectus urna duis convallis. Porta nibh venenatis cras sed felis eget neque laoreet suspendisse interdum consectetur libero id faucibus nisl donec pretium vulputate sapien nec sagittis aliquam nunc lobortis mattis aliquam faucibus purus in.
Nisi quis eleifend quam adipiscing vitae aliquet bibendum enim facilisis gravida neque. Velit euismod in pellentesque massa placerat volutpat lacus laoreet non curabitur gravida odio aenean sed adipiscing diam donec adipiscing tristique risus. amet est placerat in egestas erat imperdiet sed euismod nisi.
“Nisi quis eleifend quam adipiscing vitae aliquet bibendum enim facilisis gravida neque velit euismod in pellentesque massa placerat”
Eget lorem dolor sed viverra ipsum nunc aliquet bibendum felis donec et odio pellentesque diam volutpat commodo sed egestas aliquam sem fringilla ut morbi tincidunt augue interdum velit euismod eu tincidunt tortor aliquam nulla facilisi aenean sed adipiscing diam donec adipiscing ut lectus arcu bibendum at varius vel pharetra nibh venenatis cras sed felis eget.
A career in software development is not an option for you if you don't enjoy learning new things.
That's just a fact. Technology changes at such a rapid pace and as the pioneers of the software driving technology forward, it's part of the job description for us to keep up to date with the latest and greatest tools, frameworks and languages we have at our disposal.
This can be very daunting even if you do have a growth mindset. Constantly needing to learn new things can be draining. That's why I've designed a framework to help myself and others quickly gain a deep understanding about something new that we're needing or wanting to learn.
Let’s dive in.
Before we go all the way into the deep end of our new interest, we should first find the answers to these 3 questions:
A sentence for each will do. You don't need to go into specific detail but you need to obtain a basic understanding of the answer to each of those questions. It will give you a conversational understanding of the technology which we can then build on from there.
Example:
Say you're wanting to learn React (the frontend JavaScript framework)
We've now answered some high level questions to help frame the technology and give us a basic understanding of what it does, when to use and how it works.
The easiest way to learn something new is to compare it to something that you already know.
The more you develop your skills and knowledge as a developer, the easier this will get because you'll have built up a library of knowledge.
The goal here is to leverage your existing knowledge to help make sense of and digest the new pieces of information that you're consuming.
Example:
React is similar to Angular or Vue in that it's a frontend framework that uses JavaScript.
React applications are built using components that form a tree, much like the widget tree in Flutter.
React commonly used Redux for state management, much like NgRX in Angular.
Leveraging my existing knowledge of other frameworks, I'm able to quickly come to terms with the React ecosystem because I'm drawing similarities instead of trying to learn everything from scratch.
There is always going to be theory behind a technology. It was built for a reason and with the intent to solve a particular problem.
The goal of this phase is to break down what that problem was and better understand how this technology is used to solve it.
Example:
React wants to make building web applications easier by allowing developers to more easily break down their applications into encapsulated components that are each responsible for their own state. These components are then easily structured together, like LEGO blocks, to build the full application. React wants developers to write code declaratively to make writing code more predictable and easier to debug. React wants to enable developers to build applications that update more efficiently and render only when data changes occur.
Through some light-weight research, we've found the core problems that the creators of React identified and the overarching theory of why React was built. This allows us to better understand the practical aspect of the technology.
With light, comes dark. With theory, comes practical.
Now we need to put our knowledge to the test and actually make use of the technology.
Whatever it is - a language, tool, framework, plugin - go take what you've learned and try to build something simple with it. Use this time to reinforce your knowledge and build the foundational understanding. From there, you can start diving deeper into the nuances of the technology because you've ensured that you have a good understanding from the get-go.
Example:
Go build a simple Hello World React application.
Now you need to attempt to explain what you've learned.
If you're at this point, you would have already:
What you need to do now it to attempt to impart your knowledge to someone else. The goal here is to be able to explain something that is most likely very complex in a way that is simple enough for a 5 year old to understand.
This can range from explaining it to a non-technical friend who knows nothing about software to giving a tech talk in your company. It all depends on your confidence level and your scenario.
The reason for this is because software development is a very collaborative career. You're going to work with a lot of people and, most likely, need to explain concepts at some point.
Use this time to improve your communication skills but also, most importantly for learning something new, identify your knowledge gaps.
The first time you explain what you've learned something strange will happen.
You'll notice that you struggle to articulate certain aspects or can't quite find the words. You know what the technology does and how to use it but those parts that you're unable to explain are gaps in your knowledge. Those are things you need to dive deeper in and really understand.
The best teachers are not the ones who use all the correct technical terms but rather the teacher who can explain something as complex as the redux data flow pattern and have it make complete sense to someone who has never written a line of code.
Go through everything again. Relearn. Fill the in the gaps. Give it another go.
Remember: you only know something really well when you're able to explain it to a 5 year old.
See you again next week.
Whenever you’re ready, there are 3 ways I can help you: