የኮምፒውተር ፕሮግራም መማር እንዴት መጀመር እንችላለን

አብዛኛውን ግዜ ኮምፒውተር ፕሮግራም መማር ስንፈልግ ከየት መጀመር እንዳለብን ግር ይለን ይሆናል። እንደ ጀማሪ ለመማር ከሁሉ የተሻለው የፕሮግራም ቋንቋ ምንድን ነው? እንዴትስ መማር እንችላለን? የሚለውን ጥያቄን ሳንጨነቅ – የፕሮግራም ቋንቋን እንዴት መምረጥ እንደምንችል እንዲሁም ፕሮግራሙን ለመማር የሚያስፈልጉ ነገሮችን እንዴት ማግኘት እንደሚቻል፣ በራስ አጋዥነትና ተነሳሽነት ፕሮግራም መማር እንደሚቻል የሚረዱ አንዳንድ ጠቃሚ ምክሮች አሰባስበናል።

የመጀመሪያው መንገድ – የፕሮግራም ቋንቋ ለመማር መወሰን

ይህን እውቀት ከማግኘታችን በፊት ምን ማድረግ እንደምንፈልግ ማሰብ ይኖርብናል። ይህም ምን መማር ና ምን ያህል መማር እንደሚያስፈልገን ለማወቅ ይረዳናል። የድረ-ገጽ ንድፍ ፍላጎት አለዎት? የቪዲዮ ጨዋታዎችን መፍጠር? የስማርትፎን አፕሊኬሽኖችን ማዘጋጀት? በቴክኖሎጂ ኢንዱስትሪ ውስጥ ሙያ ማግኘት? ችግሮችን መፍታት? የፊት-መጨረሻ ፕሮግራም (front-end programming) ወይም የኋላ-መጨረሻ ፕሮግራም ይበልጥ ትኩረት አለዎት (back-end programming)?

የፊት-መጨረሻ ፕሮግራም (Front-end programmers) አዘጋጆች እንደ ግራፊክ የተጠቃሚ አገናኞች (GUIs) እና ተጠቃሚዎች የሚያገናኛቸው ነገሮች ላይ ይሰራሉ። የፊት-መጨረሻ ፕሮግራም አዘጋጆች ተወዳጅ ቋንቋዎች HTML, CSS, እና Javascript ያካትታሉ።

የኋላ-መጨረሻ ፕሮግራም (Back-end programmers) አዘጋጆች የመረጃ ቋት, ስክሪፕቲንግ, እና የፕሮግራም ንድፍ, እና ከመድረክ በስተጀርባ የሚከወኑ ነገሮች ላይ ያተኩራሉ። ለጀርባ ተጠቃሚዎች ተወዳጅ የፕሮግራም ቋንቋዎች, Ruby, Python, PHP, እና እንደ MySQL እና Oracle ያሉ መሳሪያዎች ያካትታሉ።

ምትፈልገው በየትኞቹ መድረኮች ላይ እንደሆነ አስብ። ለኮምፒዩተሮች ሶፍትዌሮችን ማዘጋጀት ይፈልጋሉ? ስለ ስማርትፎን እና ታብሌት አፕሊኬሽኖች ይበልጥ ትኩረት ትሰጣላችሁን? ከሆነ ይበልጥ የምንፈልገውን የትኛውን የአሠራር ሥርዓት ነው? የማኮስ (macOS) ሶፍትዌሮችን ለማዘጋጀት ለWindows አፕሊኬሽኖችን ለማዘጋጀት ከምንጠቀምበት ቋንቋዎች በተጨማሪ የተለዩ ቋንቋዎች እንድትማር ሊጠይቀን ይችላል። በተመሳሳይም የአይፎን (iPhone) እና የአይፓድ (iPad) አፕሊኬሽኖችን  ማዘጋጀት የአንድሮይድ (Android) አፕሊኬሽኖችን ከማዘጋጀት የተለየ ችሎታ ሊጠይቅ ይችላል።

የተለያዩ የፕሮግራም ጽንሰ-ሃሳቦችን መረዳት ያስፈልጋል። የተለያዩ የፕሮግራም ቋንቋዎች ቢኖሩም ሁሉም የሚያመሳስሏቸው ጥቂት መሠረታዊ ጽንሰ ሐሳቦች አሉ። አንዳንድ መሰረታዊ የፕሮግራም ጽንሰ-ሀሳቦች እንደሚከተለው ተቀምጠዋል፦

ተለዋዋጭ (Variable) ፡ ተለዋጮች በፈለግንና ባስፈለገን ጊዜ የምንጠቀመው፣ መረጃዎች ተከማችተው የሚቀመጡበት ሲሆን። ይህ ተለዋዋጭ አብዛኛውን ጊዜ ምሳሌያዊ ስም ይሰጠዋል። አንዱ የተለዋዋጭ ምሳሌ አንድ ፕሮግራም ተጠቃሚው ስማቸውን እንዲያስገባ ሲጠይቀው። የሚገቡበት ስም “ስም” ተብሎ በሚጠራ ነገር ምልክት ሥር ሊቀመጥ ይችላል። ከዚያም ፕሮግራም አቀንቃኝ ተጠቃሚውን በስማቸው ለማመልከት “ስም” የሚለውን ምልክት መጠቀም ይችላል። ፊደሎችን ያቀነባበረ ተለዋዋጭ ወይም ነገር «አውታር» ይባላል “String“።

የቁጥጥር መዋቅር (Control Structure)፡ የቁጥጥር መዋቅር ፕሮግራሙ የትኛው ክፍል መስራት እንዳለበት እና በምን ቅደም ተከተል መደረግ እንዳለበት ለፕሮግራሙ ይነግረዋል። የጋራ የሆነ የመቆጣጠሪያ መዋቅር ብዙ ጊዜ የ If/Then/Else መግለጫ ተብሎ ይጠራል። (If) ይህም አንድ ሁኔታ እውነት ከሆነ፣ የፕሮግራሙን ቀጣይ (Then) ክፍል  ይዝለቁ የሚለውን ፕሮግራም ሲሆን። ወደ ዋናው ወይም ወደ ሌላ ክፍል ለመመለስ (Else) ለሁሉም ወደ ሌላ ክፍል ተመለስ በሚል ይመራል። ለምሳሌ ያህል፣ አንድ ፕሮግራም ተጠቃሚው የይለፍ ቃል እንዲፈጥርለት ቢጠይቅ፣ የይለፍ ቃል እንደ አውታር ይቀመጣል። የይለፍ ቃሉ ስክሪን ተጠቃሚው የይለፍ ቃላቸውን እንዲያስገባ ይጠይቃል። የገባው የይለፍ ቃል ከተቀመጠው የይለፍ ቃል ጋር እኩል ከሆነ ቀሪውን ፕሮግራም አስፈፃሚ ለማድረግ አንድ IF/Then/Else መግለጫ ለፕሮግራሙ ይውላል። ስህተት ከሆነ፤ ለሁሉም ነገር የሚለውን በመጠቀም ” የይለፍ ቃልህ ስህተት ነው” የሚለውን ያሳየናል።

የውሂብ አወቃቀር (Data structure) ፡ የዳታ አወቃቀር በውጤታማነት ጥቅም ላይ እንዲውል መረጃዎችን የማከማቸትና የማደራጀት ዘዴ ብቻ ነው። የመረጃ አወቃቀር አንዱ ምሳሌ በስልክዎ ላይ ያለው መገናኛዎቸች ሊሆኑ ይችላሉ። ለምሳሌ ያህ የእርስዎ ፕሮግራም አገናኞችዎን እንደ የተለያዩ መለዋወጫዎች ከማከማቸት ይልቅ ሁሉንም የእርስዎን ግንኙነቶች የሚያከማች “ዝርዝር” የሚባል አንድ ተለዋዋጭ በመፍጠር ለይቶ ያስቀምጣል።

ሲንታክስ (Syntax)፡ ኮድ በትክክለኝው መንገድ በአንድ የተወሰነ ቋንቋ ውስጥ የሚገባበት በመሆኑ በእያንዳንዱ የፕሮግራም ቋንቋ የተለያዩ የፕሮግራም ቋንቋዎች አሉት። Syntax ተለዋዋጮች እንዴት ማስቀመጥ እንደሚቻል፤ የተለያዩ ምልክቶችን ማለትም ቅንፎችን ( ) ወይም ቅንብሮች [ ], ተገቢ ውሂብ አጠቃቀም, እና ሌሎችንም ምልክቶች በትክክለኛው መንገድ የሚያስቀምጥልን ሲሆን። ሲንታክስ በትክክል ካልገባ፣ ፕሮግራሙ ኮዱን ማንበብ ስለማይችል የስህተት መልእክት ልታገኝ ትችላለህ።

መሳሪያዎች (Tools)፡ መሣሪያዎች ፕሮግራምን በቀላል ለመከወን የሚረዱ ነገሮች የያዘ በመሆኑ አመቺ ያረገዋል። እነዚህ ኮድዎን የሚፈትሹ እና ትክክል መሆኑን የሚያረጋግጡ የሶፍትዌር ገጽታዎች ሲሆኑ። በተጨማሪም በራሳችን ፕሮግራም ውስጥ ተግባራዊ ማድረግ የምትችላቸው በቅድሚያ የተዘጋጁ የፕሮግራም ገጽታዎች ሊሆኑ ይችላሉ። ይህም ፕሮግራም ለምናደርገው አመቺ ያደርግልናል ገጽታዎችን እራሳችን መገንባት ላይጠበቅብን ይችላል።

የትኞቹን የፕሮግራም ቋንቋዎች መማር እንደምንፈልግ ውሳኔ ማድረግ። ከፕሮግራም እውቀትህ ጋር ምን ማድረግ እንደምንፈልግ ከወሰንን በኋላ በፕሮግራማችን መስክ የትኞቹ የፕሮግራም ቋንቋዎች ጥቅም ላይ እንደሚውሉ ለማወቅ ምርምር ማድረግ ትጀምራለህ።

ፓይተን (Python)፡ ለጀማሪዎች ጥሩ የማስጀመሪያ ቋንቋ የሚባል ሲሆን ጠቅላይ ዓላማ ያለው ቋንቋ በመባል ይታወቃል ስለ ማንኛውም ነገር ለመከወን ያስችላል እንዲሁም ለመረዳት ቀላል፣ ለመጠቀም ምቹና ተወዳጅ ቋንቋ ነው።

ሩቢ (Ruby)፦ ሩቢ ለጀማሪዎች ሌላው ጥሩ ቋንቋ ነው። እንደ ፓይተን ሁሉ ይህ ቋንቋም ቢሆን ለመማር ቀላል የሆነ አጠቃላይ ዓላማ ያለውና በዓላማ ላይ ያተኮረ ቋንቋ ነው።

ጃቫ (Java)፡- ለብዙ ዓመታት የቆየና እያደገ የሄድ ተወዳጅ ቋንቋ በመሆኑ ለአንድሮይድ ስልክ አፕሊኬሽኖችን ለማዘጋጀት የሚሠራበት ዋነኛ ቋንቋ ነው። በተጨማሪም የኮምፒውተር ፕሮግራሞችን ለማዘጋጀት ሊያገለግል ይችላል። ለምሳሌ ያህል፣ ማይንክራፕት (Minecraft) መጀመሪያ የተገነባው በጃቫ ነበር።

ሲ (C)፡- በመጀመሪያ የተዘጋጀው ለጽህፈት ስርዓት ሶፍትዌር ቢሆንም በዛሬው ጊዜ በእያንዳንዱ ማይክሮፕሮሰሰር ውስጥ ይካተታል። በጣም ብዙ ነገር ባይታይበትም ነገር ግን C መማር ከቻልክ፣ ስለ ማንኛውም ሌላ የፕሮግራም ቋንቋ ብቻ ለመማር የሚያስችል ጠንካራ መሠረት ይኖርዎታል ማለት ነው።

C++፦ C++ በሰፊው ጥቅም ላይ ከዋሉ ብዙ ዓላማ ያላቸው ቋንቋዎች አንዱ ነው። ለመማር አንድ ተጨማሪ አስቸጋሪ ቋንቋ ቢሆንም የሚያስቆጭ አይደለም። C++ የምታዳብራቸው ፕሮግራሞች ላይ ሰፋ ያለ ቁጥጥር እና በኮምፒውተሩ ሃርድዌር ላይ የበለጠ ቁጥጥር ይሰጥዎታል። ትላልቅ መተግበሪያዎችን ለማዘጋጀት ምርጥ ቋንቋዎች አንዱ እንደሆነ ይቆጠራል።

C#፦ C# (C sharp)፡- ከ C++ ትንሽ አዲስ ሲሆን አንዳንድ ተጨማሪ ገጽታዎች አሉት። ከ C++ ለመማር ትንሽ ቀላል እና ብዙ የ ዊንዶውስ መተግበሪያዎች ውስጥ ጥቅም ላይ ይውላል።

ስዊፍት (Swift)፡- በ Apple የዳበረ ባለብዙ ዓላማ ቋንቋ በመሆኑ በዋናነት እንደ iPhone, iPad, macOS, Apple TV እና ሌሎች ምርታዎች ለአፕል ምርቶች አፕሊኬሽኖችን ለማዘጋጀት ያገለግላል።

HTML/CSS፡- HTML እና CSS የድረ-ገጽ ንድፍ ውስጥ ጥቅም ላይ ይውላሉ። HTML በዌብ መቃኛዎ ሊሰሩ የሚችሉ የድረ-ገፆችን ለመፍጠር ያገለግላሉ። በድረ ገጽ ላይ ነገሮችን ለመጨመር እና የድረ ገጹን መልክ ንድፍ ለማውጣት HTMLን መጠቀም ትችላላችሁ። ሲኤስ ኤስ በተለያዩ ድረ ገጾች ላይ መደበኛ መልክ ወይም የአጻጻፍ ስልት ለመፍጠር ያገለግላል። ለምሳሌ ያህል፣ ለድረ ገጽ በተለያዩ ድረ ገጾች ላይ ተመሳሳይ መልክና የአጻጻፍ ስልት መፍጠር ከፈለጋችሁ፣ በእያንዳንዱ ድረ ገጽ ላይ ተመሳሳይ የ HTML ስልት ኮዶችን መጠቀም ትችላላችሁ፣ ወይም በሁሉም ድረ ገጾች ላይ ተመሳሳይ መልክ ያለው አንድ የሲ ኤስ ኤስ ፋይል መፍጠር ያስችለናል።

ጃቫስክሪፕት (Javascript)፡ ጃቫስክሪፕት (ከጃቫ-Java  ጋር መምታታት የለበትም) በዌብ ዲዛይን ውስጥ የሚሰራ ሌላ ቋንቋ ነው። ጃቫስክሪፕት ለድህረ ገጽ ተሳታፊ የሆኑ ገጽታዎችን ለመፍጠር ያገለግላል። ማንኛውም የድረ-ገጽ መተግበሪያ ንድፍ ለማውጣት አስፈላጊ ነው።

PHP እና MySQL፡ PHP እና MySQL በአገልጋይ ላይ የመረጃ ቋቶችን የሚቆጣጠሩ የኋላ-መጨረሻ ቋንቋዎች ናቸው። ፕሮግራም፣ ድረ ገጽ ወይም አፕሊኬሽን የተጠቃሚዎችን መረጃ በማከማቸት ተጠቃሚዎች እንዲገቡ በሚጠይቁበት ጊዜ ሁሉ ያ መረጃ በዳታቤዝ ላይ ይቀመጣል። የ MySQL እና PHP የመረጃ ቋቶችን ለመፍጠር እና ለማስተዳደር የሚያገለግሉ ቋንቋዎች ናቸው።

ባጠቃላይ በዚህ በመጀመሪያው መንገድ መሰረታው የሆኑ የፕሮግራሚንግ ምን እንደሆነና ለመማር ከምን መነሳት እንዳለብን፣ ለመጀመር ውሳኔ እንደሚያስፈልገን፣ የመማር ፍላጎት መኖሩ ዋናው መነሻ እንደመሆኑ፣ ከየት መጀመር እንዳለብን ከመሰረታዊው ጽንሰ-ሃሳቦች በመነሳት ጀምረናል በመቀጠልም እነዚህን ቋንቋዎች ከየት ማግኘት እንደምንችል እና እንዴት መጀመር እንዳለብ በቪዲዮ እና በምስል በታገዘ መልኩ እናያለን።  

About Author

ዮሐንስ ቴክ (admin)

Leave a Reply

Your email address will not be published. Required fields are marked *