Олардың бәрін басқаратын бір тіл

Код қабатының астында жасырылған тіл әлсірейді, үйренуге құштар.

Олардың бәрін басқаратын бір тіл

Осы жазу кезінде «бірінші қай тілді үйрену керектігін бағдарламалау» сұрауы 517 миллион іздеу нәтижесін береді. Бұл сайттардың әрқайсысы белгілі бір тілді мақтайды және олардың 90% Python немесе JavaScript-ті ұсынады.

Көп ұзамай, осы 517 миллион веб-сайттың барлығы дұрыс емес екенін ресми түрде мәлімдеп, ең алдымен үйрену керек тіл екенін айтқым келеді. негізгі логика.

Тек кодтауды білу жеткіліксіз. Нарықтың институттар мен курстардың түлектерімен қаныққандығы сонша, кіші лауазым іс жүзінде тоқтатылды*. Бүгінгі әлемде табысқа жету үшін сіз кодтауыңыз керек және іргелі логикалық ойлауыңыз болуы керек.

*бұдан әрі, бұл аударма екенін есте сақтаңыз және автор үшін және сіздің еліңіздегі еңбек нарығындағы жағдай әртүрлі болуы мүмкін (басқа нюанстар сияқты), бұл өз бетінше түпнұсқа мақаланы нашарлатпайды - шамамен. аударма

Менің бірінші информатика сабағым

Менің информатикаға алғаш кіріскенім 10-сыныпта өткен таңдау пәні болды. Сыныпқа кірген алғашқы күні менің алдымда балмұздақ пен түрлі қоспалардың көп шелектерін көріп, қатты қуандым. Барлығы отырған соң мұғалім:

«Бүгін біз өзіміз дайындаған балмұздақтардың дәмін татамыз. Бірақ бір шартпен: сіз десертті қалай дайындау керектігі туралы нақты нұсқаулар тізімін жасауыңыз керек, мен оларды орындаймын ».

«Ешқандай проблема жоқ», - деп ойладым мен, «бұл сабақ ұзақ болмайды». Бір минуттың ішінде мен армандаған балмұздақтың тамаша рецептін жазып алдым:

  1. Таңқурайдан жасалған балмұздақтың үш қасықты алып, ыдысқа салыңыз
  2. Шоколад соусын ашып, бір ыдысқа екі ас қасық қосыңыз
  3. Ыдысқа үгітілген кілегей қосыңыз
  4. Барлығын қант таяқшаларымен себіңіз де, үстіне шие салыңыз

Менің мұғалімім - бұл сүйкімді метафорадағы «компьютер» - мен бұрын-соңды көрмегеннен гөрі мысқылды, тура мағынада орындады. Ол балмұздақ шелегін қасықпен тіпті қақпағына да тигізбестен құлшыныспен сипалай бастады.

«Жарайды, жақсы, бірақ алдымен оны ашу керек!» – деп айқайладым мен тәттіні тезірек алуға тырысып.

«Сіз мұны нұсқаулықта жазбадыңыз, мен сізге балмұздақ жасай алмадым. КЕЛЕСІ!»

№2 әрекетке жылдам алға ұмтылайық

  1. Таңқурайдан жасалған балмұздақты қақпақты алу арқылы ашыңыз
  2. Таңқурайдан жасалған балмұздақтың үш қасықты алып, ыдысқа салыңыз
  3. Шоколад соусын ашып, бір ыдысқа екі ас қасық қосыңыз
  4. Ыдысқа үгітілген кілегей қосыңыз
  5. Барлығын қант таяқшаларымен себіңіз де, үстіне шие қойыңыз

Енді, әрине, ешқандай проблемалар болмауы керек. Қалай болғанда да, мен аспаздық шедеврімді жасауға арналған барлық ингредиенттер ашық екеніне көз жеткіздім.

Мұғалім қақпақты шешіп алып, үш қасық балмұздақты ыдысқа салды. «Ақыры, менің әдемі балмұздағым орындала бастады!» Содан кейін ол шоколад соусын ашып, ыдысқа екі ас қасық қосты. Ол «екі ас қасықтан шоколад соусын қоспады» - олай ойламаңыз - ол, әрине, қасықтарды ыдысқа салды. Олардың ішінде тұздық жоқ. Қайталап айтамын, мен бәрін дәл жазуға әуре болмадым. Қалғандары бірдей рухта болғаннан кейін, мен балмұздақ пен екі ас қасық алдым, бұл кілегей теңізінің астында әрең байқалды. Үстінде бір жұп қант таяқшасы болды.

Дәл осы сәтте маған бұл ойға оралған сияқты: компьютер - бұл вакуумдағы логика. Ол айналадағы жағдайларды білмейді және ешқандай болжам жасамайды. Ол тек нақты тұжырымдалған нұсқауларды орындайды және оларды сөзбе-сөз орындайды.

Менің соңғы нәтиже ұзақ, бірақ қажетті сынақтар мен қателер сериясының нәтижесі болды:

  1. Егер сіз мұны әлі жасамаған болсаңыз, келесі пакеттердің әрқайсысын ашыңыз: таңқурайдан жасалған балмұздақ, шоколад соусы, кілегей, қант таяқшалары.
  2. Тостағанды ​​шығарып, алдыңызға қойыңыз
  3. Балмұздақ қасық алыңыз да, бір-бірден ыдысқа үш қасық таңқурай балмұздағын салыңыз. Балмұздақ қасықты орнына қойыңыз.
  4. Шоколад соусының құмырасын алыңыз, соусты алыңыз және ас қасықтың мазмұнын ыдысқа құйыңыз. Тұздықты тағы бір рет шайып, құю әрекетін қайталаңыз. Қасық пен құмыраны орнына қойыңыз.
  5. Бұлғанған кілегей орамын төңкеріп алыңыз да, оны тостағанның үстінен ұстап тұрып, балмұздақтың үстіне 3 секундқа құйыңыз, содан кейін орамды орнына қайтарыңыз.
  6. Бір банка қант таяқшасын алыңыз да, қырыққа жуық таяқшаны ыдысқа құйыңыз да, банканы қайтадан қойыңыз.
  7. Шие ыдысынан бір шие алып, оны балмұздақтың үстіне қойыңыз.
  8. Оқушыға дайын балмұздақ пен қасық салынған ыдысты беріңіз.

Соңғы нүкте ерекше маңызды болды, өйткені онсыз мұғалім соңғы уақытта менің балмұздағымды жей бастады.

Бірақ бұл бағдарламалау. Компьютерге арналған мұқият нұсқаулар жинағын жасаудағы стресс. Негізінде, әрбір бағдарламалау тілі осыған келеді - нұсқауларды жазу.

Бағдарламалаудағы мансап

Жұмыс сипаттамасы ретінде «бағдарламашы» деген жалғыз сөзді пайдалану қиынға соғатындай, бағдарламалауды бір сала ретінде талқылау қиынға соғатын деңгейге жетті. Екі әзірлеуші ​​мүлдем басқа тілдерді біле отырып, нарықта бірдей сұранысқа ие болуы мүмкін, яғни нақты тілді білуден гөрі даму мүмкіндігі маңыздырақ. Барлық табысты әзірлеушілер ортақ әмбебап атрибут болып табылады негізгі логика.

Ең жақсы бағдарламашы - кодқа жаңа қырынан қарай алатын адам. Және бұл өте маңызды, өйткені бағдарламалық өнімдердің көпшілігі нашар кодтың құжатсыз фрагменттерінің жинағы болып табылады. Оларды үнемі біріктіріп, қажетінше бос орындарды толтыру керек. Бір-бірінен бөлек нүктелерді бір сызықпен байланыстыра алмайтын адамдар мәңгілікке шетте қалуы керек.

Мұның бәрі мені бұл жолы қалың әріппен басқа мәлімдемеге әкеледі: іргелі білім әрқашан бағдарламашы үшін ең маңызды болды және болады.

Тілдер келеді және кетеді. Фреймворктар ескіруде, ал компаниялар қолданатын технологиялық стекті өзгерту арқылы сұранысқа жауап беруде. Ешқашан өзгермейтін бір нәрсе бар ма? Иә - іргелі білім, ол іргелі деп аталады, өйткені ол барлық нәрсенің негізінде жатыр!

Негізгі білімді қалай жақсартуға болады

Олардың бәрін басқаратын бір тілКристофердің суреті Ешке туралы Unsplash

Егер сіз іргелі логикалық ойлауды жақсарту үшін бастапқы нүктені іздесеңіз, мына жерден бастап көріңіз:

Бағдарламаңыздың күрделілігін біліңіз

Сондай-ақ деп аталады Үлкен O «Алгоритм күрделілігі» бағдарламаны орындауға кететін уақыттың оның кіріс деректерінің өлшеміне тәуелділігін білдіреді. (n). Қолданылатын алгоритмдердің импульсінде саусағыңызды ұстау маңызды қадам болып табылады.

Деректер құрылымдарыңызды біліңіз

Деректер құрылымдары әрбір заманауи бағдарламаның негізінде жатыр. Қандай жағдайда қандай құрылымды қолдану керектігін білу өз алдына бір пән. Деректер құрылымдары орындау уақытының күрделілігіне тікелей байланысты және қате құрылымды таңдау негізгі өнімділік мәселелеріне әкелуі мүмкін. Массивтегі элементті табу - бұл O (N), бұл кіріс деректері ретінде массивтерді пайдаланудың жоғары құнын көрсетеді. Хэш кестесін іздеу − O (1), яғни бұл жағдайда мәнді іздеу уақыты элементтер санына байланысты емес.

Адамдар сұхбат алу үшін маған келіп, массив арқылы іздеу хэш кестесі арқылы іздеуге қарағанда жылдамырақ екенін айтты. Бұл оларды жалдамаудың ең сенімді белгісі болды - деректер құрылымдарыңызды біліңіз.

Оқу / көру / тыңдау

Сайттар ұнайды UdemyPluralsight и Код академиясы - Жаңа бағдарламалау тілдерін үйрену үшін тамаша таңдау. Бірақ негіздері үшін жалпы кодтау принциптері, тәжірибелері және стильдері туралы кітаптарды қараңыз. Ең көп ұсынылатын кітаптар «Дизайн үлгілері», «Рефакторинг. Қолданыстағы кодты жақсарту», ​​«Мінсіз код», «Таза код» және «Прагматистік бағдарламашы». Соңында, әрбір әзірлеуші ​​​​көшірмесін сақтауы керек "Алгоритмдер« қол астында.

Жаттығу!

Жұмыртқаны сындырмай, жұмыртқаны пісіруге болмайды. сияқты сайттар HackerRankCodeWarsCoderByte, TopCoder и LeetCode деректер құрылымдары мен алгоритмдер туралы біліміңізді тексеру үшін мыңдаған қызықты басқатырғыштарды ұсыныңыз. Өзіңізге ұнайтын мәселені шешуде сәттіліктеріңізді сынап көріңіз, шешіміңізді Github сайтында орналастырыңыз, содан кейін басқалардың оған қалай қарайтынын көріңіз. Бұл бізді соңғы нүктеге әкеледі:

Басқа адамдардың кодын оқыңыз

Даму жолына түскенде жасай алатын ең үлкен қателік – жалғыз жүру. Бағдарламалық жасақтаманы әзірлеу негізінен командалық жұмыс болып табылады. Біз стандарттарды бірге жасаймыз, бірге қателесеміз және барлық сәтсіздіктерге қарамастан, бірге жақсарамыз. Басқа адамдардың кодын оқуға жұмсалған уақыт жақсы нәтиже береді. Тек оның жақсы код екеніне көз жеткізіңіз.

Мен бере алатын ең жақсы кеңес - әлі бірдеңені білмегеніңіз үшін ешқашан ұялмаңыз. Жоғарыда айтылғандай, біздің өнеркәсібіміз орасан зор және технологияның көлемі шексіз. Жалпы суретті құру үшін көп уақыт пен күш қажет, нақты бір нәрседе кәсіпқой болу үшін одан да көп, ал өз салаңыздағы дағдыларыңызды шыңдау үшін үлкен тәртіп қажет. Мен бұған қол жеткізген кезде сізге хабарлаймын.

Ақпарат көзі: www.habr.com

пікір қалдыру