Я понимаю, как кодировать. Я знаю, как обойти основы языков, которые я регулярно использую. Я знаю, как писать регулярные выражения чуть выше базовых, я могу общаться с базами данных, принимать входные данные, распечатывать, обрабатывать файлы и т. Д. Я более или менее уверен в своей основной способности выплевывать исходный код для умеренно сложная программа.
Моя проблема в том, что я никогда не чувствую, что этого достаточно. Я чувствую, что знаю только небольшую часть стандартной библиотеки моего языка, и что, пока я не пойму все это, по крайней мере, мимоходом, я не имею права даже пытаться устроиться на работу, используя ее. Я только что закончила колледж (Community / Junior / Whathaveyou), и мои друзья получают работу в индустрии, но я все еще чувствую себя подделкой или проблемой, и я просто недостаточно хорош.
Есть ли приличный маркер для «Я знаю достаточно», который я мог бы использовать, чтобы убедиться, что я могу кодировать? Должен ли я принять тот факт, что я, по крайней мере, способен кодировать FizzBuzz как индикатор того, что можно подавать заявку на вещи? Как я могу относительно легко узнать больше об этих стандартных библиотеках, платформах и / или API? Я регулярно пишу код, читаю книги, но мои знания все еще кажутся такими поверхностными.
ПОМОГИТЕ!
источник
I feel like I only know a small portion of the standard library of my language
это предложение должно быть официальным девизом C ++ .Ответы:
Моя рекомендация, приятель:
перестаньте думать двоично (0/1, не зная / не зная, неграмотный / грамотный) и начните думать нечетко (я знаю в некоторой степени). Все мы знаем что-то и в какой-то степени. Знание - это континуум, и каждый находится где-то между самым неграмотным человеком и самым знающим, искушенным парнем. Вы можете сделать работу, но на вашем уровне и под этим . Это правило. Не бойся Не ждите того дня, когда вы узнаете все о своей структуре, и ИМХО этот день не наступит никогда. Даже разработчики с 20-летним опытом все еще читают, чтобы узнать что-то новое. Программирование настолько широко по своей природе, что вы не должны (или не можете) схватить все это.
Погрузитесь в рабочую среду и не бойтесь. У всех нас были дни, когда мы не могли что-то сделать. Это не преступление. Это часть нашей работы. Вы не знаете, вы учитесь, вы пытаетесь сделать работу, и вы делаете это.
Я думаю, что вам нужно иметь сейчас, это не больше знаний. Скорее, это просто уверенность в себе.
Удачи
источник
Я полагаю, что вы задаете неправильный вопрос здесь, и если вы позволите мне немного необоснованной психологии, я думаю, это потому, что вы страдаете от небольшой неуверенности в себе и низкой уверенности в себе.
Прекратите широко сравнивать себя с другими
Прежде всего, вы не можете сравнивать себя в широком смысле с другими программистами. Даже у рок-звезд, на которых вы можете смотреть прямо сейчас, вероятно, есть проблемы (неряшливость, еще один способ делать вещи и проблемы с отношением), поэтому не беспокойтесь о том, сравните ли вы их. Вместо этого ваш подход должен заключаться в том, чтобы приобрести как можно больше наставников, собрать все возможные знания и стать лучше, наблюдая и подражая экспертам.
Учиться учиться
Кроме того, лучший подход к тому, чтобы стать лучшим программистом и учеником в целом, заключается не в обучении конкретным вещам или понимании по памяти. ИМО, запоминание наизусть - самая низкая форма обучения. Это похоже на программу, которая пропускает критически важный этап «обработки» в Input-> Process-> Output. Учите себя понятиям, подобным тем, которые вы упомянули в своем вопросе. Широкое понимание программирования - это то, где вы предоставляете наибольшую ценность. Изучение нового языка в парадигмах, с которыми вы знакомы, - это легкая прогулка по сравнению с изучением того, как решать проблемы.
А теперь, за какой-то плохой совет от кого-то, только немного старше тебя
Одна из самых больших ошибок, которые я совершил в молодости, заключалась в том, что я принимал решения других за них, полагая, что я недостаточно хорош, и что мое время и талант не стоили их времени и денег. Я постоянно недооценивал свои способности и свой талант, хотя, возможно, это было в то время. Это была огромная ошибка.
Что вам нужно понять, так это то, что даже умеренно приличный программист кажется волшебником в повседневной жизни. Они могут ненавидеть вас, им может быть надоело постоянно спрашивать у местного ботаника, как включить их компьютер, но из-за того, что им не хватает понимания и понимания того, что вы делаете, как бы банально и просто это ни казалось вам, это невозможно им.
Люди будут платить вам за ваше время, ваш талант и вашу энергию. В нашей отрасли достаточно ужасных программистов, которые совершают убийства просто потому, что могут сидеть на месте и (возможно) писать базовые программы. Играйте в свои карты правильно, развивая некоторую уверенность в себе через достижения, практикуйте свою речь и язык тела, продолжайте совершенствовать свое мастерство, всегда ищите вещи, которые вы не знаете, и бегите к этим вещам, чтобы искать больше понимания, и, наконец: прекратите принижать навыки, которые вы развили.
источник
«Я знаю достаточно» и «Я хорош для этой работы» совершенно разные.
ИМО «Я хорош для этой работы» ближе к «Я знаю основы, и я знаю - что учить / где искать / кого спрашивать / что читать - для выполнения моих задач».
(это не значит, что они будут нанимать вас, если вам понадобится, например, 1-2 месяца для изучения: писать / читать в файлах XML. Надеюсь, вы понимаете, о чем я.)
Кроме того, я не думаю, что какой-либо программист когда-либо скажет: «Я знаю достаточно». (может быть, «достаточно, чтобы получить работу», «достаточно, чтобы разбогатеть», «достаточно, чтобы ...», но не «достаточно» :))
РЕДАКТИРОВАТЬ: Когда я говорю "основы", я имею в виду
(Возможно, вам нужно будет использовать 2-3 языка на работе)
Я согласен с Саидом: погрузись в работу, работа - это лучший способ учиться, ты работаешь с людьми, которые знают больше тебя, ты учишься у них, видишь, как они работают, но они начинали так же, как ты (или, может быть, они начали с меньшими знаниями, чем у вас сейчас).
источник
У тебя отличное отношение! Один из фундаментальных факторов успеха - никогда не быть довольным. Никогда не решить. Никогда не скомпрометируйте себя. Тем не менее, очень трудно понять, как именно это сделать (например, знание «наилучшей практики» для выполнения задачи X не так просто, как поиск в Google, потому что у каждого свое мнение).
Лучше всего научиться определять хороший код и обосновывать его ( как и почему ). Для этого я бы порекомендовал почитать блоги авторитетных специалистов в нашей области, так как это подвергнет вас определенному мышлению. Вклад в проект с открытым исходным кодом также один из способов , чтобы перейти в глубокий конец, однако, это даст вам возможность учиться у других , как это в настоящее время прогрессирует.
источник
Я думаю, что большинство из нас рано или поздно оказались в такой ситуации. И каждый раз, когда вы выбираете новый язык, все начинается заново. Итак, первый совет от меня будет: не отчаивайтесь, вы не одиноки. И: ты, вероятно, лучше, чем ты думаешь, хотя бы потому, что ты сам размышляешь. Помните старую пословицу: дураки устремляются туда, где ангелы боятся наступать.
В настоящее время большинство языков имеют стандартные библиотеки, которые слишком велики для того, чтобы какой-либо отдельный человек мог знать их наизусть. Добавьте фреймворки и API-интерфейсы, и вы не сможете знать все это. Лучшее, что вы можете сделать, это знать основы, а затем выяснить, где узнать больше. Это становится лучше с опытом, поэтому лучший совет, вероятно, просто пойти и использовать материал!
Нет единого «приличного» маркера. Все зависит от окружающей среды. То, что было бы вполне достаточно для одной компании / проекта, может быть далеко для другой. Если вы действительно можете делать то, что, как вы говорите, можете, я бы отнес вас к приличному юниору, и у вас не должно возникнуть проблем с поиском достойной работы.
источник
Исходя из того, что вы пишете в своем вопросе, вы на самом деле можете кодировать, и вы готовы улучшить свои навыки и знания.
Все в каждой работе должны начинать с нуля, как новичок, а затем расти с опытом.
Насколько быстро ваш рост зависит от вас, все растут с разной скоростью, единственное, что важно, это то, что вы не слишком много просите у себя сейчас.
Если что-то, что вы чувствуете, вы еще не совсем поняли, не волнуйтесь. Вскоре вы сможете получить картину.
Возможно, вы захотите начать работать в отрасли как можно скорее. Поскольку вы уже можете кодировать, вы уже можете начать работать. Это потому, что теория недостаточно хороша, вам нужно практиковаться и решать реальные проблемы.
Что касается ваших знаний библиотечного кода, это придет со временем, если вы будете продолжать изучать его, читать документацию и практиковаться в его использовании. Такие сайты также очень полезны, и вы будете учиться быстрее, если будете активно задавать и отвечать на соответствующие вопросы.
Личный совет: если вы действительно хотите выделиться из множества людей, которые делают код для спагетти, называя себя программистами, изучите лучшие практики. Неважно, на каком языке или в какой библиотеке вы учитесь или пишете, изучайте лучшие практики. Это сэкономит вам много времени, ошибок, сбоев, головных болей и поможет вам почувствовать себя лучше программиста.
источник