Разработка ПО - это инженерная дисциплина. Если вы хотите стать действительно профессиональным разработчиком, то необходимо в себе развивать качества инженера, а именно: системный подход к решению задач и аналитический склад ума. Для вас должно перестать существовать слово магия. Вы должны точно знать как и почему работают системы, с которыми вы взаимодействуете (между прочим, полезное качество, которое находит применение и за пределами IT).
К сожалению, существует огромное множество людей, которые пишут код без должного понимания важности этих принципов.
Для того, чтобы не оказаться одним из таких бедолаг, необходимо постоянно инвестировать свое время в получение фундаментальных знаний из области Computer Science. В частности, для прикладных разработчиков в большинстве случаев таким фундаментом является операционная система, в которой выполняются созданные ими программы.
Веб-фреймворки и контейнеры приложений рождаются и умирают, а инструменты, которыми они пользуются, и принципы, на которых они основаны, остаются неизменными уже десятки лет. Это означает, что вложение времени в изучение базовых понятий и принципов намного выгоднее в долгосрочной перспективе.
🔗 источник
… понять о важности двух вещей: наличие плана и последовательного его исполнения. Первое помогает понять, что куда нам нужно идти, и какие ключевые вещи использовать, а упрямство и последовательность позволят довести дело до конца.
Саморазвитие – это процесс, причем бесконечный. И тут важно настроить себя на то, что быстрых результатов не будет, да и вообще понять, что результат (карьера и финансы) являются лишь побочным результатом этого процесса.
В книге много полезных мыслей советов, но ключево, имхо один: будьте последовательными. Нет, не так. Набросайте план и последовательно идите к его выполнению. План не должен быть точным. Над ним не нужно неделю работать.
И не рассчитывай на быстрый результат. Его не будет. Не будет быстрого продвижения по службе. Не будет сразу же восторженных комментариев к вновь созданному блогу. Даже посетителей толком не будет. Ничего. Это нормально.
Наберитесь терпения. Пусть сам процесс доставляет удовольствие и результат придет.
🔗 источник
To become a better developer you MUST get a better understanding of the underlying software systems you use on a daily basis and that includes programming languages, compilers and interpreters, databases and operating systems, web servers and web frameworks. And to get a better and deeper understanding of those systems you MUST re-build them from scratch.
So, to become better you need to understand better, and to understand better you must re-build pieces of those systems from scratch.
Чтобы основательно разобраться в самых основах IT (ценность который наиболее долговечна), нужно изучать базовые технологии и пробовать их реализовывать самостоятельно в простейшем виде (например, web-сервер, DNS resolver, интерпретатор кода, и т.п.).
Языки и фреймворки меняются, основы основ остаются. Наиболее глубокому изучению этих основ необходимо посвятить ближайший год.
The story is a good reminder to all of us to not lose sight of the importance of deep work on simple, basic ideas even if it sometimes feels like a step back. While it is important to be proficient with a tool or framework you use, it is also extremely important to know the principles behind them. As Ralph Waldo Emerson said:
“If you learn only methods, you’ll be tied to your methods. But if you learn principles, you can devise your own methods.”
Tips from Arjan
Do you know what really kickstarted my journey towards being a senior developer? Surprisingly, it had nothing to do with learning how to code better. I found the major difference was a change in my mindset. Here are four tips to help you achieve this.
1. Relentlessly focus on learning
One of the biggest mistakes I see developers make is that they think they need to know everything before they get started. Unfortunately, you’ll never know everything. In the world of software development, learning never stops and it involves way more than just writing code. You’ll need to know:
- Which technologies, libraries and data structures are best for different problems
- Which design principles and patterns help you write clean code
- How to test your code
- How to deploy your code
- How to work with team members, clients, and other stakeholders
And that’s just the start! On top of these things, technology is always changing, so there’s always going to be more things to learn. If you want to become the best software developer out there, embrace learning and don’t be afraid of change. The longer you do this, the bigger the impact on you will be.
2. Document what you learn
Simply following online courses, watching videos, or reading blogs is not enough. It’s crucial that you internalize the information and give yourself the time to mull things over. Take notes of the things you learn, write down your thoughts about a particular subject while you’re learning about it. It’s great to have a track record, because you are going to forget things that might come in handy later on. Also, writing things down as you learn is going to allow you to see the progress you’ve made by looking back at your older notes from time to time.
There are lots of great tools out there to help you with this. You can use something simple like Notepad, or Apple Notes, you can use Markdown files to gather your thoughts (VS Code can format Markdown automatically) or go all in with tools like Notion or Evernote. It’s also useful to maintain a private Git repository where you can experiment with things and keep track of your coding history.
3. Openly discuss your design with peers
One of the best ways to improve the way you design software is by talking about your designs with peers. If you work in a team of developers, you can ask team members to review your code. Though code reviews are helpful, make sure you’re not only getting line-by-line feedback, but also feedback on the overall structure of your design, as this will help you improve your design skills. Try to do code reviews yourself of code by others. This helps you broaden your horizons as well as think about why certain designs work better than others. Being able to articulate this clearly in a code review is extremely valuable.
What has helped me become better at design is to have open discussions about my design decisions. It’s important to always keep an open mind and don’t get too attached to a specific solution or approach. Create an environment where everyone’s free to contribute any idea and not worry about the quality. I can’t count how often I suggested a really bad idea, but it triggered a great idea later on in the discussion. Another tip is to question even the most basic assumption and see what happens when you explore that direction - play the devil’s advocate. It might lead to surprising insights!
4. Look at the bigger picture
Junior developers tend to have a smaller zone of focus when working within a system, whereas more senior developers tend to have a birds-eye view. More experienced developers will take time to think through the potential side effects of what they’re doing, as well as how this fits into the overall system. Practice this by asking yourself these questions:
- Is what I’m doing consistent with how things have been done elsewhere in the codebase?
- Will the code be reused elsewhere in the system?
- Will my code be easy to maintain or extend in the future?
When you write software, it’s natural to view things as a software developer and not as the user. Try to view the software from the user’s perspective. How does that new feature you added affect the flow the user goes through? Do the steps make sense? Are there things you can do to make life easier for the user? I’ve noticed that spending a bit of extra time by looking at the bigger picture helps avoid a lot of bugs and problems in the long run.
- Arjan
Чтобы вам было легче преодолевать свои слабости, представьте себе, что многие люди прошли тот же путь, что и вы. Некоторые из них проложили на этом пути вехи для вас — это книги и иногда URL-адреса. Другими словами, для того чтобы заполнить пробелы в знаниях и/или опыте, рекомендую побольше читать. Вам нужно читать по многим причинам. Вот некоторые из них.
- Читайте, чтобы оставаться «на уровне». Сюда можно отнести чтение отраслевых журналов, книг, посвященных вашему основному языку программирования, и журналов, касающихся методов, применяемых в вашей работе. Это вы должны делать почти каждый день, просто чтобы не потерять необходимые навыки.
- Читайте, чтобы быть в курсе. Такое чтение расширит ваши познания, причем некоторые из источников, используемых для сохранения вашей квалификации (чтобы оставаться «на уровне»), применимы и в этом случае. Здесь вам надо сфокусироваться на том, что, возможно, не требуется прямо сейчас, но может понадобиться в ближайшем будущем. Интернет-рассылки, форумы и прочие чудеса информационной эры могут быть необычайно полезными. Не забывайте, однако, что эра информации — это совсем не то же самое, что эра знаний.
- Читайте, чтобы углубить свои знания. Подобное чтение может быть сложным, но вы должны находить для него время, чтобы достичь более полных знаний по технологии и методикам, с которыми сталкиваетесь в своей повседневной работе. Здесь вам придется внимательно изучить книжные шкафы в вашей местной библиотеке, книжном магазине или Интернете в поисках книг, которые действительно могут помочь. Для того чтобы углублять свои знания, в выборе книг избегайте характерного для поваренной книги подхода к изложению. Вам нужно нечто большее, чем просто набор рецептов; вам нужно «откусывать больше того, что вы, как вам кажется, можете прожевать».
(Гл.2, стр.56) Как пасти котов
Стресс может быть мощным фактором, направляющим ваши усилия, если вы привыкли постоянно быть под напряжением и не сдаваться. Если вас не заводит ваша работа, возможно, вы выбрали не ту работу. Не бойтесь неудач, они когда-нибудь обязательно случаются; не бойтесь не успеть к сроку, это тоже когда-нибудь произойдет. Учитесь на своих ошибках; не научившись стойко переносить неудачи, вы никогда не будете знать, что делать с успехами.
(Гл.2, стр.59) Как пасти котов
📂 Мотивация | Последнее изменение: 15.08.2024 11:32