C WinApi

C WinApi Ծրագրավորում C++ Developer C C++ Windows API winapi կուրսեր

14/10/2018

# POS3 # C/C++
1. C/C++ -ով պրոֆեսիոնալ ծրագրավորողը պետք է լավ տիրապետի C/C++-ի բոլոր ստանդարտ տիպերին և կարողանա նրանց հիման վրա ստեղծել ցանկացած նոր տիպեր՝ class, struct, union:

2. Խորացված հասկանալ փոփոխականի, հաստատունի, հղման և ցուցիչի օգտագործման նպատակները, նրանք օգտագործել ճշգրիտ և տեղին, հասկանալ թ նրանք որտեղ են գտնվում հիշողությունում և ինչ գործողություններ ակրելի է կատարել նրանց նկատմամբ:

3. Լավ տիրապետել C/C++-ի օպերատորներին:

4. Լավ տիրապետել C/C++-ի կառավարման հրահանգներին:

5. C++-ով ծրագիր գրելուց երբեմն հարմար և էֆեկտիվ է լինում օգտագործել նաև C-ի ստանդարտ գրադարանից՝
հիշողության հետ աշխատող ֆունկցիաները;
տեքստերի հետ աշխատող ֆունկցիաները;
մաթեմատիկական ֆունկցիաները;
թվերը տեքստային ֆորմատի և հակառակը՝ տեքստային թվերը թվային տիպի վերածելու ֆունկցիաները;
ֆայլային սիստեմայի հետ աշխատող ֆունկցիաները և այլն:

6. Խորացված իմանալ կլասները և կլասի համար կարողանալ գրել ցանկացած տիպի կոնստրուկտորներ, օպերատորներ, ուրիշ անդամ ֆունկցիաներ, լավ տիրապետել կլասները ժառանգելու մեխանիզմներին: Հասկանալ կլասի անդամ սովորական, ստատիկ և վիրտուալ ֆունկցիաների տարբերությունները և կանչելու մեխանիզմները, իհարկե մինչ այդ պետք է լավ պատկերացնել ֆունկցիայի, նրան ուղարկվող պարամետրերի և նրա հետ ուղարկած արժեքի մեխանիզմները:

7. Լավ հասկանալ class-ի, struct-ի և union-ի նմանությունները և տարբերություննեևը:

8. Արդեն C/C++-ի մակարդակում Պետք է լավ հասկանալ թե ինչպես է C/C++-ը աշխատում ծրագրի վիրտուալ հիշողության հետ և արդեն օպերացիոն համակարգի մակարդակով լավ իմանալ վիրտուալ և ֆիզիկական հիշողությունների կապը և համագործակցությունը:

9. Պետք է լավ պատկերացնել ինչ են փոփոխականների և ցուցիչների մասիվները, կարողանալ չափերը փոփոխող մասիվներ ստեղծել, և այդ մասիվների և նրանց անդամների հետ ցանկացած գործողություններ կատարել՝ անդամներ ավելացնել, հեռացնել, փոփոխել, փնտրել, ցանկացած պայմանով դասավերել և այլն, իհարկե մինչ այդ

10. Պետք է լավ իմանալ STL-ը, STL-ում եղած Կոնտեյներները, Ալգորիթմները, իմանալ Իտերատորների օգտագործման նրբությունները և այլն Հետագայում երբ ծրագրավորողը կունենա STL-ոմ եղածի սեփական իրագործումները, ապա կարող է հրաժարվել STL-ը օգտագործելուց:

11. Նույնը վերաբերվում է MFC, QT, boost գրադարաններին և Embarcadero RAD Studio ( C++ Builder, Borland) պակետի գրադարաններին: Ծրագրավորողը ժամանակի ընթացքում ստիպված է լինում գրելու այդ գրադարաններում եղած ֆունկցիաների (ալգորիթմներ) և կլասների (Կոնտեյներները, կոնտրոլներ, կոմպոնենտներ և այլն) սեփական տարբերակները և այդ գրադարանները այլևս պետք չեն գալիս:

Վերևում թվարկած կետերում ոչ բոլոր թեմաների մասին եմ գրել, հետագայում ժամանակ ունենալու դեպքում բաց թողնված թեմաները կլրացնեմ և ավելի մանրամասն մեկ առ մեկ կանրադառնամ վերևում թվարկած կետերին:

14/10/2018

# POS2 # C/C++
C++-ով ծրագրավորողը պետք է լավ տիրապետի նաև C ծրագրավորման լեզվին, որովհետև C-ին C++-ի անբաժանելի մաս է կազմում:
C/C++-ով գրված են Գրեթե բոլոր Օպերացիոն Համակարգերը, Ծրագրավորման լեզուները, Սարքերի Դրայվերները, Խաղերը, Բազաները կառավարող սիստեմաները, պրոֆեսիոնալ կիրառական ծրագրերը, web browser-ները և այլն: Ներքևում թվարկված են C/C++-ով գրված ծրագրերի մի մասը.
1. Օպերացիոն համակարգերը՝ Microsoft Windows, OS2, Linux և Unix ընտանիքի մյուս Օպերացիոն համակարգերը, Apple MacOS, Sun Solaris, Google Chrome OS և այլն:
2. Հեռախոսների Օպերացիոն համակարգերը՝ Android, iOS, Microsoft Mobile, Windows Phone և այլն:
3. Օպերացիոն համակարգերի գրաֆիկական ինտերֆեյսերը՝ KDE Gnome , Microsoft Windows UI, Apple MacOS UI (Aqua) և այլն: Android-ի GUI գրված է Java-ով:
4. Ծրագրավորման լեզուները (կամպիլյատորներ/ ինտերպրետատորներ/վիրտուալ մեքենաներ)՝ gcc (GNU Compiler Collection), Microsoft Visual C++, Microsoft Visual C #, Microsoft Visual Basic, PHP, Perl, Python, Ruby, javac (Sun Java compiler) և այլն, Virtual Machines՝ Java Virtual Machine (JVM), Microsoft .Net CLR և այլն:
5. Խաղեր գրելու հիմնական 3D գրադարանները՝ DirectX, OpenGL
6. Web Server-ները՝ Apache, Microsoft IIS, nginx և այլն:
7. Web Browsers՝ Google Chrome, Microsoft Edge, Internet Explorer, Netscape Navigator, Mozilla Firefox, Safari, Opera, և այլն:
8. Բազաները՝ MySQL, MariaDB, Microsoft SQL Server, Oracle, Microsoft Access և այլն
Կիրառական ծրագրերը՝
9. Adobe ընկերություն՝ Photoshop, Acrobat, Illustrator, Premiere Pro, After Effects, Audition, Dreamweaver, Flash Professional, InDesign և այլն
10. Microsoft ընկերություն ՝ Microsoft Access, Microsoft Word, Microsoft Excel, Microsoft Outlook և այլն
11. Corel ընկերություն ` CorelDRAW, Corel PHOTO-PAINT, և այլն
12. Nero AG ընկերություն` Nero Burning ROM, Nero Video, Nero ShowTime, Nero WaveEditor և այլն
13. Մյուս ընկերությունների ծրագրեր՝ AutoCAD, QuarkXPress, notepad++, BitTorrent, հիմնական media player-ները, լայն տարածում ստացած և պրոֆեսիոնալ գրեթե բոլոր ծրագրերը:
Հղումներ՝ http://www.stroustrup.com/applications.html, http://www.lextrait.com/vincent/implementations.html,
Բացի հղումները ես անձամբ ստուգել եմ թե որ ծրագրավորման լեզվով են գրված վերևում թվարկված (և նաև վերևում չթվարկած բազմաթիվ) ծրագրերը:

14/10/2018

# POS1 # Windows-ում աշխատող ծրագիր գրելու համար ծրագրավորողը բացի ծրագրավորման լեզվից պետք է՝
1. Կարողանա ցանկացած տիպի պատուհան ստեղծել (եթե ծրագիրը ունի GUI (graphical user interface))

2. Կարողանա ծրագրում օգտագործել ցանկացած տիպի ստանդարտ “control”-ներ՝ Button, Edit, List Box, ComboBox, Scroll Bar և այլն: Անհրաժեշտության դեպքում ստեղծել սեփական “control”-ները: (եթե ծրագիրը ունի GUI (graphical user interface)):

3. Կարողանա Պատուհանների վրա նկարել ցանկացած վեկտորային կամ ռաստերային պատկեր՝ GDI, GDI+, Direct2D API և այլն գրադարաններով, այդ պատկերները տպել տպիչի (printr-ի) վրա և այդ պատկերների հետ աշխատելու համար ինտերֆեյս գրել:

4. Խորացված իմանա հիշողության հետ աշխատել՝
new, delete c++ ծրագրավորման լեզվի օպերատորներ
malloc, free և այլն - c ծրագրավորման լեզվի ֆունկցիաներ
HeapCreate, HeapAlloc, HeapFree և այլն - Windows API ֆունկցիաներ
VirtualAllocEx, VirtualFree, VirtualQueryEx և այլն - Windows API ֆունկցիաներ
CreateFileMapping, MapViewOfFileEx և այլն - Windows API ֆունկցիաներ

5. Խորացված իմանա ֆայլային սիստեմայի հետ աշխատել՝
Դիսկերի հետ աշխատանք՝ GetLogicalDriveStrings, GetDriveType, GetVolumeInformation, GetVolumeInformation և այլն - Windows API ֆունկցիաներ:
Պապկաների հետ աշխատանք՝ CreateDirectory, RemoveDirectory, MoveFile և այլն - Windows API ֆունկցիաներ:
Ֆայլերի հետ աշխատանք՝ CreateFile, WriteFile, ReadFile, DeleteFile և այլն - Windows API ֆունկցիաներ:
Ֆայլերի և Պապկաների ընդհանուր ֆունկցիաներ՝ FindFirstFile, FindNextFile, SetFileAttributes, FindFirstChangeNotification և այլն - Windows API ֆունկցիաներ:

6. Պրոֆեսիոնալ կարողանա աշխատել առավել տարածված բազաների հետ՝ Microsoft Access,
MariaDB (MySQL), Microsoft SQL Server և այլն: Ցանակլի է բազաների հետ աշխատել ODBC API-ով:

7. Տիրապետել Multithreading (մուլտիհոսք) ծրագրավորմանը՝
AfxBeginThread, CreateThread, SuspendThread , ResumeThread և այլն - MFC և Windows API ֆունկցիաներ: std::thread կլաս և այլն С++11 և բարձր:
Տիրապետել ծրագրի (process)-ի հոսքերը (Threads) միմյանց հետ սինխրոնիզացնելու արվեստին՝
սպասող ֆունկցիաներ՝
WaitForSingleObjectEx, WaitForMultipleObjectsEx, MsgWaitForMultipleObjectsEx և այլն
սինխրոնիզացիայի օբյեկտներ՝
CRITICAL_SECTION, Mutex, Event, Semaphore, WaitableTimer, ConditionVariable
իմանալ Memory Barrier, օգտագործել ատոմային (Interlocked) ֆունկցիաները:

8. Կարողանա ցանկացած ինֆորմացիա ուղարկել և ստանալ լոկալ ցանցով (LAN) և Ինտերնետով (ցանկալի է օգտագործել Multithreading), ցանկալի է դրա համար օգտագործել Berkeley sockets կամ(և) Windows Sockets տիրապետելով HTTP, FTP, SMTP, POP3, SSH, SSL և այլն:

9. Windows-ի օբյեկտների պաշպանություն՝ Security Descriptor, Access Token, ACL SACL DACL ACE SID, Group, User և այլն:

10. Որոշ դեպքերում պետք են գալիս նաև COM (Component Object Model), Windows Registry և այլն:
Հետագայում, ժամանակ ունենալու դեպքում ավելի մանրամասն մեկ առ մեկ կանրադառնամ վերևում թվարկած կետերին:

Հետագայում, ժամանակ ունենալու դեպքում ավելի մանրամասն մեկ առ մեկ կանրադառնամ վերևում թվարկած կետերին:

Address

Moldovakan 30/1
Yerevan
0062

Telephone

+37477218000

Website

Alerts

Be the first to know and let us send you an email when C WinApi posts news and promotions. Your email address will not be used for any other purpose, and you can unsubscribe at any time.

Contact The Business

Send a message to C WinApi:

Share