1. Выбрать дело вашей жизни и посвящать себя ему пока у вас есть время и силы достичь в нем больших результатов - позже это будет все сложнее.
2. Не терять время - это самое ценное в жизни, а годы летят очень быстро.
3. Не терять друзей и близких людей - потом вернуть их будет очень сложно.
А как вы выбрали дело вашей жизни? Я вот просто до сих пор никак не могу определится.
Я не думаю, что это алгоритмизуемо, все слишком индивидуально. Это примерно как ответить на вопрос "Как найти свою любовь?". Встретите и поймете :)
Но нельзя сказать и что все совсем случайно, обычно есть набор предпосылок. Мне, например, это много лет было намного интереснее всего остального, я посвящал этому много времени, у меня были к этому способности, и я был уверен, что это дело моей жизни.
Однако, наверное, я бы не стал здесь отвечать так серьезно и писать "посвящать себя ему пока у вас есть время и силы достичь в нем больших результатов" и "позже это будет все сложнее", если бы у меня все получилось. Примерно в вашем возрасте у меня не хватило упорства и настойчивости в движении по направлении к моей цели. Нельзя сказать, что в итоге все сложилось плохо. Сейчас занимаюсь другим и внешне все благополучно. Но я до сих пор жалею, что тогда не стал продолжать.
У меня есть основной вектор развития — Software Engieering — но у меня еще миллион разных интересов между которыми я постоянно мечусь. Можно даже сказать, что мне нравится все — и биология, и математика, и философия, и Software Engineering, и физика, и типографика, и дизайн, и Machine Learning… И мне хочется узнать, как все это вокруг меня работает и устроено, но в то же время я понимаю что не смогу научится всему этому.
Более того, проблема еще в том, что сегодня мне хочется узнать что такое изоморфизм между линейными пространствами, завтра я посмотрю видео про теорию групп и мне захочется выучить абстрактную алгебру, потом я посмотрю видео про Перельмана и буду искать учебники по топологии, потом посмотрю интервью с каким-нибудь биологом, вдохновлюсь и начну учить молекулярную биологию. И вот так постоянно.
Много разных интересов, если эти интересы обучают вас, развивают и помогают узнать что-то глубокое об этом мире и о себе, это необязательно плохо, скорее даже хорошо. Я тоже многим увлекался в детстве/юности, это неизбежное следствие такого полезного качества как любопытство и желания все знать. Все что вы перечислили это в любом случае полезнее, чем зависать в соцсетях или играть в компьютерные игры.
Но нужно правильно распределять время между главным и второстепенным. И помнить, что 20 лет это уже не детство, когда можно делать что хочется и сколько хочется, а возраст, в котором нужно обдумывать и планировать свою жизнь, а значит понимать, чем вы хотите заниматься, что хотите достичь и на что нужно тратить основное время. Если, например, вы в самом деле хотите стать software engineer, то алгебра, теория групп, software engineering и machine learning будут в целом полезнее, чем типографика, дизайн, биология и философия (если только в какие-то моменты вы не будуте моделировать, например, процессы внутри клеток). Последним можете интересоваться в свободное время, но выделять на это только очень ограниченное количество часов в день/неделю по сравнению с вашей главной целью и внутренним предназначением, которое вы для себя сформулируете.
Я добился определенных успехов в программировании, проработал полгода в компании, которая разрабатывает ПЛК для газодобычи, но понял, что особо не хочу работать программистом в офисе: нужно сидеть читать чужие простыни кода, без какой-либо документации, причем никто не знает как там все работает. При взгляде на тот код, становится страшно, как там все до сих пор не взлетело на воздух: мне попался фрагмент где 7-и строчках 8 undefined behavior (7 нарушений правил strict aliasing и 1 выход за границу массива), а этот код работает на заводах, мда. Мне нравится программировать для себя, но в основном я пишу что-то, чтобы разобраться как это работает, ничего прикладного или полезного.
"Работать программистом в офисе" это не значит
все время "читать чужие простыни кода, без какой-либо документации, причем никто не знает как там все работает". Хотя и будет иногда включать. И даже из последнего старайтесь находить для себя возможности для развития, как при чтении статей или просто детективов, где нужно разгадать что имел в виду автор. Но в любом случае, сформулируйте для себя более четко что значит работать в качестве software engineer если
в самом деле хотите им стать. "Программировать для себя" и "ничего прикладного или полезного" не подойдет ни в качестве работы, ни, тем более, как самое главное в жизни. Зачем делать то, что вы заведомо считаете не может быть никому полезно? Таким может быть только хобби уровня собирания марок или крышек от пивных бутылок.
В общем, суть в том, что не могу я определится пока. У вас было так же? Как вы выбрали, куда идти?
На второе я ответил выше, но как я там написал
- это слишком индивидуально,
- даже если вам покажется, что вы это найдете - это не поможет, если у вас не будет хватать упорства и настойчивости в достижения цели, а также качества, которое можно описать как "взрослость" или "сознательность" при выборе и движении в вашем направлении.
А что именно делать вам чтобы определиться - сможете понять только вы. Для этого больше думайте, экспериментируйте, анализируйте и сравнивайте. Углубляйтесь и пробуйте. Советуйтесь с людьми, которые работают в этом направлении. Проводите реалити чек на уровне ваших способностей в этом, а значит и возможности make a difference. Помните пункт 2: "Не терять время - это самое ценное в жизни, а годы летят очень быстро." И главное, занимайтесь тем, что вы в самом деле любите, иначе ничего хорошего в любом случае не получится.