Як ви дізнаєтесь стандартні рамки / API / функції мови? [зачинено]


14

Я розумію, як кодувати. Я знаю, як обійти основи мов, якими регулярно користуюсь. Я знаю, як писати трохи вище базових регулярних виразів, можу спілкуватися з базами даних, можу приймати введення, друкувати вихід, обробляти файли тощо. Я більш-менш впевнений у своїй базовій здатності виплюнути вихідний код для помірно складна програма.

Моя проблема полягає в тому, що я ніколи не відчуваю, що цього достатньо. Я відчуваю, що знаю лише невелику частину стандартної бібліотеки своєї мови, і що, поки я не все це зрозумію, принаймні попутно, я не маю права навіть намагатися влаштуватися на роботу, використовуючи її. Я щойно вийшов з коледжу (громада / молодший / щохавею), і мої друзі отримують роботу в галузі, але я все ще відчуваю себе фальшивкою або поганою людиною, і я просто недостатньо хороший.

Чи є гідний маркер для "Я знаю достатньо", який я міг би використати, щоб запевнити себе, що можу кодувати? Чи слід сприймати той факт, що я, принаймні, здатний кодувати FizzBuzz як показник того, що добре застосовувати речі? Як я можу порівняно легко дізнатися більше про ці стандартні бібліотеки, рамки та / або API? Я кодую регулярно, я читаю книги, але мої знання все ще відчуваються такими дрібними.

ДОПОМОГА!


3
чим більше ти вчишся, тим більше розумієш, наскільки мало ти знаєш. +1 за дуже гарне запитання.
devnull

Я не впевнений, що цей матеріал варто запам'ятати. Зрештою, у вас є документація, яку можна шукати, розумні IDE тощо. Набагато краще використовувати свій мозок для важливих речей, для фундаментальних знань, зберігаючи все те, що мінливі API, зовні.
SK-логіка

I feel like I only know a small portion of the standard library of my languageце речення має бути офіційним девізом C ++ .
ZJR

Відповіді:


8

Мій рекомендаційний приятель:

перестаньте думати бінарне (0/1, не знаючи / знаючи, неграмотно / грамотно) і починайте думати нечітко (я певною мірою знаю). Усі ми знаємо щось і певною мірою. Знання - це континуум, і кожен розміщується десь між найграмотнішою людиною та самим знаючим, витонченим хлопцем. Ви можете виконати роботу, але на своєму рівні та під цим . Це правило. Не бійтеся. Не чекайте дня, коли ви дізнаєтесь усе, що ви хочете, і IMHO цього дня ніколи не настане. Навіть розробники 20-річного досвіду все ще читають, щоб дізнатися нове. Програмування настільки широке за своєю суттю, що ви не повинні (або не можете) захопити все це.

Пориньте в робоче середовище і не бійтеся. У всіх нас були дні, коли ми не могли щось зробити. Це не злочин. Це частина нашої роботи. Ви не знаєте, ви вчитеся, ви намагаєтеся виконати роботу, і ви це зробите.

Я думаю, що те, що вам потрібно мати зараз, - це не більше знань. Скоріше, це просто впевненість у собі.

Щасти


Я розумію, що це все нечіткі знання та деякі JIT-вивчення деталей. Я просто не знаю, як запевнити себе, що я навіть нечітко розумію основи. Я хвилююся, що я пропускаю деякі дійсно важливі речі повністю.
Throwaway

2

Я вважаю, що ви задаєте неправильне запитання, і якщо ви дозволите мені трохи необґрунтовану психологію, я думаю, це тому, що вас мучить трохи сумнівів у собі і низька впевненість у собі.

Перестаньте широко порівнювати себе з іншими

Перш за все, ви не можете порівнювати себе на широкому рівні з іншими програмістами. Навіть у рок-зірок, на які ви можете виглядати прямо зараз, швидше за все, будуть проблеми (неохайність, ще один спосіб робити речі та проблеми зі ставленням), тому не хвилюйтеся, чи порівнюєте ви їх. Натомість ваш підхід повинен полягати в тому, щоб придбати якомога більше наставників, зібрати всі можливі знання та стати кращими, спостерігаючи за експертами та імітуючи їх.

Навчитися вчитися

Крім того, найкращий підхід до того, щоб стати кращим програмістом і вчителем взагалі, не полягає у вивченні конкретних речей або розумінні пам'яттю. ІМО, запам’ятовування по ротах - це найнижча форма навчання. Це як програма, якій не вистачає найважливішого кроку "обробки" Input-> Process-> Output. Навчіть себе такі поняття, як ті, про які ви згадали у своєму запитанні. Широке розуміння програмування - це те, де ви надаєте найбільшу цінність. Вивчення нової мови в парадигмах, з якими ви знайомі, - це тотальний розбір порівняно з тим, як навчитися вирішувати проблеми.

А тепер за якісь погані поради від когось, лише трохи старшого від вас

Одна з найбільших помилок, яку я зробив у юнацтві, полягала в тому, що я приймала за них рішення інших, вважаючи, що я недостатньо хороша, і що мій час та талант не варті свого часу та грошей. Я постійно підкреслюю свої здібності та свій талант, рідко, хоча це було в той час. Це була величезна помилка.

Що вам потрібно зрозуміти, це те, що навіть помірно пристойний програміст здається майстром середнього повсякденного джоу. Вони можуть вас ненавидіти, вони можуть захворіти від того, що завжди потрібно запитати місцевого глузника, як увімкнути свій комп’ютер, але через те, що їм не вистачає розуміння і розуміння того, що ви робите, яким би банальним і простим вам не здавалося, це неможливо їм.

Люди БУДЬ заплатити вам за свій час, ваш талант та вашу енергію. У нашій галузі достатньо абсолютно жахливих програмістів, які роблять вбивство просто тому, що вони можуть сісти на місце і (можливо) писати основні програми. Грайте у свої картки правильно, розвиваючи певну впевненість у собі завдяки досягненню, практикуйте свою розмову та мову тіла, продовжуйте оволодівати своїм ремеслом, завжди шукаючи речі, яких ви не знаєте, і біжіть до тих речей, щоб шукати більше розуміння, і нарешті: перестаньте зневажати навички, які ви розвинули.


2

"Я знаю достатньо" і "Я добре в цій роботі" абсолютно різні.

ІМО "Я хороший для цієї роботи" ближче до "Я знаю основи, і я знаю - що навчитися / де шукати / у кого запитати / що читати - щоб виконати завдання".

(це не означає, що вони наймуть вас, якщо вам потрібно 1-2 місяці, щоб навчитися, наприклад: писати / читати у файлах XML. Сподіваюся, ви зрозуміли, що я маю на увазі.)

Крім того, я не думаю, що жоден програміст ніколи не сказав «я знаю достатньо». (можливо "достатньо, щоб отримати роботу", "достатньо бути багатим", "достатньо, щоб ...", але не "достатньо". :))

EDIT: Коли я кажу "основи", я маю на увазі

  1. Основи програмування (біт, байт, змінні, функції, параметри, цикли, умови, рекурсія)
  2. Основи мови програмування, з якою ви будете працювати (як скласти програму, як налагодити програму; як використовувати IDE; 90% ключових слів і знати, що вони роблять, коли користуватися, як ними користуватися; змінна типи; як використовувати речі з 1 в мові; найбільш корисні бібліотеки; обробка помилок)
  3. "З'єднайте 1 і 2 з кров'ю" :)

(Можливо, для роботи вам потрібно буде використовувати 2-3 мови)

Я погоджуюся з Saeed, занурюйся в роботу, робота - це найкращий спосіб навчитися речам, ти працюєш з людьми, які знають більше, ніж ти, ти вчишся у них, бачиш, як вони працюють, але вони почали так само, як ти (або, можливо, вони почали з меншими знаннями, ніж у вас зараз).


Мені не знадобилося б місяць, щоб читати і писати XML-файли, хоча я все ще думаю, що це, можливо, займе у мене день. Чи можете ви детальніше розповісти про "основи"? Це насправді головне питання мого питання, оскільки я не знаю, що я знаю основи. Я, безумовно, знаю деякі основи, але я дуже переживаю, що пропускаю деякі дійсно фундаментальні прогалини.
Throwaway

1

У вас чудове ставлення! Одним із основних факторів успіху є ніколи не поступатися самовдоволенням. Ніколи не осідайте. Ніколи не йдіть на компроміс. З цього приводу, дуже важко розібратися, як саме це зробити (наприклад, знати "найкращу практику" для виконання завдання X не так просто, як гуглінг, тому що кожен має власну думку).

Найкраще навчитися визначати хороший код та обґрунтування його ( як і чому ). Для цього я рекомендую читати блоги авторитетних професіоналів у нашій галузі, оскільки це піддасть вам такий тип розуму, який потрібно шукати. Внесок в проект з відкритим вихідним кодом також один з способів , щоб перейти в глибокий кінець, однак, це дасть вам можливість вчитися у інших , як це в даний час прогресує.


Спасибі. Я не думаю, що зрозумів, скільки мені потрібно, щоб почути таку похвалу.
Throwaway

0

Я думаю, що більшість із нас в певний момент рано чи пізно опинилися в кар’єрі. І кожного разу, коли ви підбираєте нову мову, все починається заново. Тож перша порада від мене буде: Не впадайте у відчай, ви не самотні. І: ти, мабуть, кращий, ніж ти думаєш, хоч би лише за те, що ти сам розмірковуєш. Згадайте стару прислів’я: Дурні кидаються туди, куди ангели бояться ступати.

На сьогоднішній день у більшості мов є стандартні бібліотеки, які просто занадто великі, щоб будь-яка окрема особа знала їх напам'ять. Додайте фреймворки та API зверху, і ви, можливо, не можете все це знати. Найкраще, що ви можете зробити, це знати основи, а потім з'ясувати, де дізнатися більше. З досвідом стає краще, тому, мабуть, найкраща порада: просто йдіть і використовуйте речі!

Немає єдиного «пристойного» маркера. Все залежить від навколишнього середовища. Те, що було б цілком достатньо для однієї компанії / проекту, може бути можливим для іншого. Якщо ти справді можеш робити те, що ти кажеш, що можеш, я б класифікував тебе досить пристойного молодшого, і у тебе не повинно виникнути проблем з гідною роботою.


[Скопіюйте / Вставте з мого коментаря до коментаря @ e-MEE вище] Мені не знадобиться місяць, щоб читати та писати XML-файли, хоча я все ще думаю, що це, можливо, займе у мене день. Чи можете ви детальніше розповісти про "основи"? Це насправді головне питання мого питання, оскільки я не знаю, що я знаю основи. Я, безумовно, знаю деякі основи, але я дуже переживаю, що пропускаю деякі дійсно фундаментальні прогалини.
Throwaway

0

Виходячи з того, що ви пишете у своєму запитанні, ви насправді можете кодувати, і ви готові вдосконалити свої вміння та знання.

Усі в кожній роботі повинні починати мало, як новачок, а потім рости з досвідом.

Наскільки швидко ваш ріст залежить від вас, всі ростуть з різною швидкістю, єдине важливе - ви зараз не надто просите себе.

Якщо ви відчуваєте, що ще не зовсім розумієте, не хвилюйтесь. Незабаром ви зможете отримати знімок.

Можливо, ви захочете якомога швидше почати працювати в галузі. Оскільки ви вже можете кодувати, ви вже можете приступити до роботи. Це тому, що теорія недостатньо хороша, для її вирішення потрібна практика та проблеми реального світу.

Що стосується знань вашого бібліотечного коду, це настане з часом, доки ви продовжуєте його вивчати, читати документацію та практикувати її використання. Цей веб-сайт також дуже корисний, і ви дізнаєтесь швидше, якщо активно задаватимете відповіді на відповідні запитання.

Особиста порада: якщо ви дійсно хочете виділитися з багатьох людей, які роблять код спагетті, називаючи себе програмістами, вивчіть кращі практики. Не має значення, на якій мові чи бібліотеці ви вивчаєте чи кодуєте, вивчайте кращі практики. Це заощадить вам багато часу, помилок, збоїв, головного болю, а також допоможе вам відчути себе краще програмістом.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.