Օգտակար խորհուրդներ

Ծրագրային ապահովման մշակում սկսնակների համար

Ես կցանկանայի որոշ խորհուրդներ ստանալ նրանց համար, ովքեր ցանկանում են ներդրված ծրագրաշարի լավ մշակող դառնալ կամ ցանկանում են բարելավել իրենց աշխատանքը այս ոլորտում:

Ինչ պետք է իմանամ ապարատային, ծրագրային ապահովման մասին:

Ո՞ր գրքերն են առավել առաջարկվում: Բլոգավարում

Ի վերջո, ինչպե՞ս կարող եմ ձգտող սիրողականից վերածվել հիանալի մասնագետի:

Մինչ այժմ բոլոր պատասխանները լավն են եղել, բայց ես կավելացնեմ երկու ցենտ:

Ահա կարկուտի որոշ խորհուրդների և մի քանի լրացուցիչ հարցերի կրկնություն.

  • Իմացեք Գ. Հիմնական ապարատային լեզուն, որը դեռևս շարժական է (շատ քիչ): Ոչ միայն ուսումնասիրեք այն, այլ դառնաք մասնագետ իր բոլոր գործառույթների մեջ, ինչպիսիք են անկայունը և ինչու է դա կարևոր սարքերի վարորդների համար գրելու համար:
  • Սկսեք Arduino- ի նման լավ մշակման հավաքածուից, բայց, ինչպես արդեն նշվեց, ուսումնասիրեք այլ ճարտարապետություններ, հենց որ դա զգաք: Բարեբախտաբար, կան մի շարք Arduino համատեղելի տախտակներ, որոնք կառուցված են այլ պրոցեսորների հետ, այնպես որ կարող եք նույն դիզայնը վերաշարադրել մեկ այլ UC- ով, որպեսզի չփչացնեք ձեր ամբողջ դիզայնը և չզգաք որևէ նոր բան:
  • Դասընթացի փուլում ազատ զգացեք նորից անիվը նոր սարքավորում սարքերի վարորդների կամ այլ կոդերի բեկորների համար: Մի՛ ավելացրեք միայն ուրիշի վարորդի կոդն այնտեղ: Իմաստ ունի նոր սովորել անիվը, երբ սովորում ես:
  • Քեզ մարտահրավեր նետեք ՝ ձեր կոդն ավելի արդյունավետ կերպով վերաշարադրելու համար ՝ արագության և հիշողության օգտագործման առումով:
  • Ներկառուցված համակարգերի ճարտարապետության տարբեր ոճերի հետ ծանոթություն: Սկսեք հիմնական ընդհատման / ֆոնային հանգույցի վերամշակումից, ապա անցեք ֆոնային ժամանակացույցների, ապա իրական ժամանակում գործող համակարգերի:
  • Ստացեք լավ տարբերակի հսկողություն: Ես ինքս եմ նախընտրում Mercurial- ը:
  • Անգամ բաժանորդագրվեք մի քանի անվճար աղբյուրների վերահսկման մի քանի կայքեր, ինչպիսիք են Sourceforge.net- ը կամ Bitbucket.org- ը, ձեր նախագիծը հյուրընկալելու համար, նույնիսկ եթե դուք միայն աշխատում եք դրա վրա: Նրանք կփրկեն ձեր ծածկագիրը, այնպես որ դուք կարիք չունեք անհանգստանալու ձեր կոշտ սկավառակը պատահաբար քանդելուց `ոչնչացնելով ամեն ինչ: Բաշխված VCS օգտագործումը շատ հարմար է, քանի որ դուք կարող եք ստուգել փոփոխությունները ձեր կոշտ սկավառակի վրա, այնուհետև դրանք պատրաստելիս վերբեռնեք հյուրընկալող կայքում:
  • Սովորեք ձեր գործիքները լավ այն ցանկացած չիպի համար, որի վրա աշխատում եք: Իմանալով, թե ինչպես է կազմիչը ստեղծում ժողով, շատ կարևոր է: Դուք պետք է հասկանաք, թե որքան արդյունավետ է ծածկագիրը, քանի որ գուցե անհրաժեշտ լինի վերաշարադրել ժողովը: Իմանալով, թե ինչպես օգտագործել կապակցիչի ֆայլը և մեկնաբանել հիշողության քարտի ելքը, նույնպես կարևոր է: Այլապես ինչպե՞ս եք իմանում, որ հենց ձեր սովորած սովորական ռեժիմը մեղավոր է չափազանց շատ ROM / Flash գործելու մեջ:
  • Իմացեք նոր մեթոդներ և փորձեք դրանց հետ ձեր նախագծերում:
  • Կատարելագործելիս ոչինչ մի՛ ստանձնեք: Ստուգեք այն:
  • Իմացեք, թե ինչպես ծրագրավորել պաշտպանել սխալներից և փորձարկման ենթադրություններից (օրինակ ՝ պնդում օգտագործելով)
  • Տեղադրեք կարգաբերման վերաբերյալ տեղեկությունները ձեր կոդից, որտեղ հնարավոր է, օրինակ, ցուցադրել հիշողության սպառումը կամ ծածկագիրը պրոֆիլը օգտագործելու ժամանակաչափերի օգտագործմամբ կամ օգտագործիչի վերահսկիչի վրա օգտագործեք պահեստային կապում `O- տարածաշրջանում ընդհատվող ուշացումը փոխելու և չափելու համար:

Ահա որոշ գրքեր.

  • Պրագմատիկ ծրագրավորող Էնդրյու Հանթը և Դեյվիդ Թոմասը `քիչ թե շատ անհրաժեշտ ընթերցանություն ցանկացած գործնական ծրագրաշարի մշակման համար
  • Գործնական Arduino
  • Տեղադրված ծրագրավորում Մայքլ Բարը
  • Ներկառուցված համակարգեր Շենքի բլոկներ Ժան Լաբրոսից
  • Իրական ժամանակի MicroC OS II միջուկը Jean Labrosse- ից, որը հիանալի ներդրում է RTOS- ի համար ընդհանուր առմամբ իր OS- ով:
  • David Simon Firmware Tutorial - Լավ ներածություն որոնվածի համար

Ծրագրաշարի մշակում և անալոգիա

Նախ, կան ծրագրավորման օրինակներ նույնիսկ ամենօրյա կյանքում: Տիեզերքը բավականին կանխատեսելի է. Օր և գիշեր, եղանակներ, արևածագ և մայրամուտ: Մարդիկ անցնում են այնպիսի փուլեր, ինչպիսիք են նոր օր հանդիպելը, դպրոց, համալսարան կամ աշխատանքի հաճախելը: Մենք ստանում ենք հրահանգներ վերադասներից և ուսուցիչներից: Կան նաև բաղադրատոմսեր, որից հետո կարող եք ուտեստ պատրաստել:

Երկրորդ, ամեն անգամ, երբ մենք օգտագործում ենք սարքեր, դրանց մեջ կառուցված կոդն արդեն աշխատում է հետին պլանում: Էկրանի մի հատվածից մյուսին կուրսորը տեղափոխելը կարող է թվալ որպես պարզ առաջադրանք, բայց, փաստորեն, կոդերի մի շարք տողեր են պատասխանատու այս գործընթացի համար: Ակտիվը նույնքան պարզ է, որքան Google Փաստաթղթերում տառեր մուտքագրելը առաջացնում է ծածկագրի ծածկագիրը հետին պլանում: Սրանք նորմալ ամենօրյա գործընթացներ են, որոնք ընդհանուր են բոլոր ՏՏ սարքերի համար:

Համակարգչային ծրագրերը նույնպես ծածկագիր են: Այնուամենայնիվ, ավելի լավ է չօգտագործել «կոդեր» բառը. Դա ոչ պրոֆեսիոնալ է:

Սովորեք ծրագրավորման լեզուներ

Երկուական խոսակցություն ունեցող մեքենաների հետ շփվելու համար մենք սովորում ենք լեզուներ, որոնք հնարավորինս մոտ են մեր սեփական, մասնավորապես ՝ ծրագրավորման լեզուներին: Դրանք հստակ կառուցված են և պետք է ուշադիր ուսումնասիրվեն:

Կան բարձր և ցածր մակարդակներ: Բարձր մակարդակի ծրագրավորման լեզուները հեռու են մեքենայական լեզվից, քան ցածր մակարդակի լեզուները: Այս «հաջորդը» սովորաբար կոչվում է աբստրակցիա.

Համակարգչին անհրաժեշտ է հասկանալ մեր մարդկային լեզուն: Դա անելու համար հարկավոր է թարգմանիչ:

Թարգմանիչների սահմանում

Աղբյուրի կոդը վերաբերում է ընտրված ծրագրավորման լեզվով գրված կոդին: Թարգմանիչները պատասխանատու են աղբյուրի կոդը վերածելու համար մեքենայական լեզու (այդներն ու զրոները): Մենք կարող ենք անդրադառնալ երկուական ֆայլերի, ինչպիսիք են օբյեկտի ծածկագիրը, ծրագիրը կամ այսօր սովորաբար օգտագործվող տերմինը `դիմում:

Թարգմանիչները կարող են լինել ցանկացած.

  • թարգմանիչներ
  • կազմողներ
  • թարգմանիչների և կազմողների հիբրիդներ,
  • հավաքիչներ:

Մեկնաբաններ

Որպեսզի ծրագրային ապահովումը մշակվի հաջողության համար, դուք պետք է հասկանաք, որ լեզուները կարող են մեկնաբանվել: Այս դեպքում թարգմանիչը տողի կոդն անցնում է տողն ըստ գծի, իսկ պատրաստի ծրագրում (դիմում) նույնպես գործարկում է յուրաքանչյուր տող: Սա նշանակում է, որ մեկնաբանված աղբյուրի կոդը գործարկվում է այնքան ժամանակ, քանի դեռ սխալ չի հանդիպում: Այնուհետև թարգմանիչը դադարում է հաղորդել այդպիսի սխալների մասին:

Python- ը մեկնաբանված ծրագրավորման լեզվի լավ օրինակ է:

Կազմիչներ

Կազմիչները այլ կերպ են աշխատում: Նրանք ամբողջությամբ փոխարկում են աղբյուրի կոդը ՝ կազմելով երկուական: Այնուհետև կատարվում է երկուական կոդ: Եթե ​​բնօրինակ տարբերակում սխալներ են եղել, դրանք հայտնաբերվում և դրոշակվում են կազմելու ժամանակ: Սա ընդհատում է երկուական կոդ ստեղծելու գործընթացը:

Մեկնաբանները աշխատում են գիծ առ գիծ և կատարում են մեկ տող ՝ հաջորդը տեղափոխվելուց առաջ: Կազմիչը թարգմանում է ծրագրի բոլոր տողերը ֆայլի (երկուական) և կատարում այն ​​ամբողջությամբ:

Հիշո՞ւմ եք համակարգչային ծրագրի սահմանումը: Սա համակարգչի համար հրահանգների հերթականություն է: Ծրագրի կատարումը սովորաբար կոչվում է գործընթաց: Նման ծրագրակազմը օգտագործում է որոշակի ռեսուրսներ համակարգչային համակարգում կամ ցանկացած այլ սարքում: Աղբյուրները ներառում են հիշողություն, սկավառակի տարածություն և ֆայլային համակարգ:

Համակարգչային ծրագիր իրականացնելիս մենք օգտագործում ենք «վազք» բառը: Գործարկման համար անհրաժեշտ ժամանակը կոչվում է ծրագրի կատարման ժամանակը.

Սովորաբար, համարվում են ծրագրեր, որոնք հայտնի են որպես հայտ: Մենք նաև ծրագրեր ենք կապում այն ​​հարթակների կամ միջավայրի հետ, որտեղ նրանք գործում են կամ որոնց համար նախատեսված են: Կան վեբ ծրագրեր, որոնք գործում են զննարկիչներում, կան սմարթֆոններում աշխատող բջջային ծրագրակազմ, ինչպես նաև աշխատասեղաններ, ինչպիսիք են Evernote- ը:

Մեկնաբանված աղբյուրի ծածկագիրը կատարվում է աղբյուրի ֆայլից, որը կազմվում է `վերածվելով երկուական ֆայլի: Այնուհետև այս ֆայլը կատարվում է: Կազմված ծածկագիրը կարող է ձախողվել գործարկման պահին նույնիսկ հաջող կազմվելուց հետո:

Հիբրիդ թարգմանիչներ

Հիբրիդ թարգմանիչը թարգմանչի և կազմողի համադրություն է: Հայտնի հիբրիդային ծրագրավորման լեզու է Java- ն.

Java ծրագրաշարի մշակումը հարմար է: Սկզբնաղբյուրը նախ կազմվում է միջանկյալ ձևաչափով, որը հայտնի է որպես Bytecode. Այնուհետև Bytecode- ը մեկնաբանվում և իրականացվում է վիրտուալ մեքենայի միջոցով: Սա թույլ է տալիս հիբրիդ թարգմանիչներին գործել բայտոդ կոդով տարբեր գործող համակարգերում ՝ այն դարձնելով խաչաձև:

Հաճախակի տրվող հարց

Սա այն հարցն է, որ սովորաբար սկսնակները հարցնում են. «Ի՞նչ լեզվով սկսել»:

Կան հարյուրավոր PLs: Դրանք դասակարգվում են ըստ ժողովրդականության, համայնքի, երկարաժամկետ աջակցության, մանկավարժության և օգտագործման: Դրանք կարող են գնահատվել նաև տեխնիկական պարամետրերով: Օրինակ ՝ անկախ նրանից ՝ դրանք ֆունկցիոնալ, հրամայական, ստատիկ, ուժեղ կամ թույլ տպված են:

Ծրագրավորման որոշ լեզուներ նախատեսված են բացառապես կրթական նպատակներով, այլ ոչ թե բիզնեսի օգտագործման համար: Լավ օրինակ է երեխաների համար YaP- ն: Կան նաև հզոր լեզուներ, որոնք հեշտ է դասավորվել և սովորել: Փիթոն - նրանցից մեկը: Սովորաբար խորհուրդ է տրվում սկսնակներին:

Եթե ​​ձեզ հետաքրքրում է խնդրի ավելի մանրամասն ուսումնասիրություն, ահա որոշ լավ ուսումնասիրություններ:

Երբ ուզում եք նոր լեզու սովորել, ձեզ հարկ կլինի լեզվի թարգմանիչ. Սա ծրագիր է, որը տեղադրվում և կազմաձևվում է համակարգչային համակարգում:

Մենք առաջարկում ենք, որ սկսեք տիրապետել հրամանի տողին (CLI): Մտածեք տերմինալի մասին որպես գրաֆիկական ինտերֆեյսի (GUI) այլընտրանք: GUI- ի միջոցով համակարգչի հետ աշխատելիս կախված եք դիրեկտորիաների տեսողական ներկայացուցչություններից և ձեր արած ամեն ինչից: Բայց CLI- ն օգտագործելիս ուղղակիորեն շփվում եք համակարգչի հետ ՝ օգտագործելով տերմինալը և հատուկ հրամաններ: