Egenheter
Recension
Programmeringsspråket C kännetecknas av minimalism. Författarna till språket ville att program i det enkelt skulle kompileras med hjälp av en kompilator med ett pass, efter kompilering motsvarade varje elementär komponent i programmet ett mycket litet antal maskininstruktioner, och användningen av grundläggande element i språket gjorde det inte involvera ett körtidsbibliotek. En engångskompilator kompilerar ett program utan att gå tillbaka till den redan kompilerade texten. Därför måste användningen av en funktion föregås av dess deklaration. C-kod kan enkelt skrivas på en låg abstraktionsnivå, nästan som assemblerspråk. C kallas ibland en "universal assembler" eller "högnivå assembler", vilket återspeglar skillnaderna i assemblerspråk för olika plattformar och enheten i C-standarden, vars kod kan kompileras utan ändringar på nästan vilken dator som helst modell. C kallas ofta för ett språk mellannivå eller ens låg nivå, med tanke på hur nära det fungerar till riktiga enheter.
C-kompilatorer är relativt lätta att utveckla på grund av den relativt låga nivån på språket och en blygsam uppsättning element. Därför är språket tillgängligt på en mängd olika plattformar (möjligen fler plattformar än något annat befintligt språk). Dessutom, trots dess lågnivåkaraktär, låter språket dig skapa bärbara program och stödjer programmeraren i detta. Program som överensstämmer med en språkstandard kan kompileras på en mängd olika datorer.
Program "Hej världen!"
Detta enkla program, som dök upp i den första upplagan av The C Programming Language av Kernighan och Ritchie, är vanligtvis det första programmet i de flesta C-läroböcker. Hon skriver meddelandet "Hello World!" på standardutmatningsenheten (som vanligtvis är en monitor (skärm), men kan också vara en fil, någon enhet eller ett område i minnet, beroende på hur standardutmatningsenheten reflekteras på en given plattform).
Main() ( printf ("Hej världen! \n") ; }
Även om det här programmet kan kompilera korrekt på de flesta moderna kompilatorer, genererar det flera varningar på ANSI C-kompilatorer. Den här koden kommer inte heller att kompilera om kompilatorn strikt följer standarden
#omfatta
Den första raden i programmet innehåller förprocessordirektivet #include; när det stöter på det ersätter kompilatorn det med hela texten i filen som den refererar till. I det här fallet kommer denna rad att ersättas av standardhuvudfilen
Nästa rad är deklarationen av en funktion som kallas main. Denna funktion i C-programmet är speciell, eftersom den exekveras först när programmet startar, det vill säga den fungerar som s.k. ingångspunkt till programmet.
De lockiga hängslen efter huvudfunktionen indikerar dess definition. Ordet int säger att huvudfunktionen returnerar (beräknar) ett heltal. Ordet void indikerar att huvudfunktionen inte kräver några parametrar eller argument från den som ringer.
Nästa rad "anropar" eller kör stdio.h-funktionen och innehåller information som beskriver hur funktionen ska anropas. I det här exemplet skickas ett enda argument till den här funktionen, som innehåller textsträngen "Hello, World!\n" . Sekvensen \n översätts till ett "ny rad"-tecken, som, när det visas, på motsvarande sätt betecknar en radbrytning. Printf-funktionen returnerar ett int-värde, som helt förkastas i det här exemplet.
Return-satsen gör att programmet slutar exekvera den givna funktionen (main i detta fall), och återgår till den anropande funktionen värdet som specificerats efter returnyckelordet (0 i detta fall). Eftersom den aktuella funktionen är main , är den som ringer den som startade programmet. Det sista lockiga klammerparentesen markerar slutet på huvudfunktionsdefinitionen.
Kommentarer
Text som är innesluten i /* och */ symbolerna i denna ordning ignoreras helt av kompilatorn. C99-kompatibla kompilatorer tillåter också kommentarer som börjar med // och slutar med en ny rad.
Typer
Datalagring
En av de viktigaste funktionerna för alla programmeringsspråk är att tillhandahålla kapacitet för att hantera minnet och de objekt som lagras i det.
Det finns tre olika sätt att allokera minne för objekt i C:
- Statisk minnesallokering: utrymme för objekt skapas i datalagringsområdet för programkoden vid tidpunkten för kompileringen; livslängden för sådana objekt sammanfaller med livslängden för denna kod.
- Automatisk minnestilldelning: objekt kan tillfälligt lagras på stapeln; detta minne frigörs sedan automatiskt och kan användas igen efter att programmet lämnar blocket som använder det.
- Dynamisk minnesallokering: Minnesblock av önskad storlek kan begäras under programkörning med hjälp av biblioteksfunktionerna malloc, realloc och fri från ett minnesområde som kallas heapen. Dessa block frigörs och kan användas igen efter att ha anropat gratisfunktionen på dem.
Alla dessa tre datalagringsmetoder är lämpliga i olika situationer och har sina egna fördelar och nackdelar. Till exempel har statisk minnesallokering ingen allokeringsoverhead, automatisk allokering har endast en liten allokeringsoverhead, men dynamisk allokering har potentiellt stor overhead i både allokering och deallokering. Å andra sidan är stackminnet mycket mer begränsat än statiskt eller heapminne. Endast dynamiskt minne kan användas i de fall storleken på de använda objekten är okänd i förväg. De flesta C-program använder sig mycket av alla dessa tre metoder.
Där det är möjligt är automatisk eller statisk minnesallokering att föredra eftersom denna metod för att lagra objekt styrs av kompilatorn, vilket befriar programmeraren från besväret med att manuellt allokera och frigöra minne, vilket vanligtvis är en källa till svåra att hitta programfel. Tyvärr är många datastrukturer varierande i storlek vid körning, så eftersom automatiskt och statiskt allokerade områden måste ha en känd fast storlek vid kompilering är det mycket vanligt att använda dynamisk allokering. Arrayer med variabel storlek är det vanligaste exemplet på denna typ av minnesanvändning.
Uppsättning av symboler som används
C-språket skapades efter introduktionen av Fortran-standarden; Lisp och Cobol använde bara parenteser (), men C har parenteser (), och kvadratiska och lockiga (). Dessutom skiljer C mellan stora och små bokstäver, medan äldre språk endast använde stora bokstäver.
Problem
Många C-element är potentiellt farliga, och konsekvenserna av att missbruka dessa element är ofta oförutsägbara. Kernighan säger: " C är ett knivskarpt verktyg: det kan användas för att skapa både ett elegant program och en blodig röra" På grund av den relativt låga språknivån är och kan inte många missbruk av farliga element upptäckas vare sig vid kompilering eller körning. Detta leder ofta till oförutsägbart programbeteende. Ibland, som ett resultat av analfabet bruk av språkelement, uppstår säkerhetsbrister. Det bör noteras att användningen av många av dessa element kan undvikas.
Den vanligaste felkällan är att komma åt ett icke-existerande arrayelement. Även om C direkt stöder statiska arrayer, har den inte array index checkers (gränskontroller). Till exempel är det möjligt att skriva till det sjätte elementet i en array med fem element, vilket naturligtvis kommer att leda till oförutsägbara resultat. Ett specialfall av ett sådant fel kallas buffertspillfel. Dessa typer av fel leder till de flesta säkerhetsproblem.
En annan potentiell källa till farliga situationer är pekmekanismen. En pekare kan referera till vilket objekt som helst i minnet, inklusive körbar programkod, och felaktig användning av pekare kan ge oförutsägbara effekter och leda till katastrofala konsekvenser. Till exempel kan en pekare vara oinitierad eller, som ett resultat av felaktiga aritmetiska pekaroperationer, peka på en godtycklig minnesplats; på vissa plattformar kan arbete med en sådan pekare orsaka ett hårdvarustopp av programmet; på oskyddade plattformar kan detta leda till korruption av godtyckliga data i minnet, och denna korruption kan uppstå vid de mest godtyckliga tidpunkter och mycket senare än det ögonblick då korruption. Det dynamiska minnesområdet som pekaren hänvisar till kan också frigöras (och till och med allokeras efter det för ett annat objekt) - sådana pekare kallas "dinglande". Eller omvänt, efter att ha manipulerat pekare till ett dynamiskt minnesområde, kanske det inte finns några referenser kvar, och då kommer detta område, som kallas "skräp", aldrig att frigöras, vilket kan leda till "minnesläckor" i programmet. Andra språk försöker lösa liknande problem genom att införa mer restriktiva referenstyper.
Ett annat problem är att automatiskt och dynamiskt skapade objekt inte initieras och de kan innehålla värden som finns kvar i minnet från tidigare raderade objekt. Detta värde är helt oförutsägbart, det ändras från en maskin till en annan, från körning till körning, från funktionsanrop till anrop. Om ett program använder ett sådant värde kommer resultatet att bli oförutsägbart och kanske inte nödvändigtvis visas omedelbart. Moderna kompilatorer försöker diagnostisera detta problem genom någon analys av källkoden, även om detta i allmänhet inte kan lösas med statisk analys.
Ett annat vanligt problem är att minnet inte kan användas igen förrän det frigörs av programmeraren med hjälp av free()-funktionen. Som ett resultat kan programmeraren av misstag glömma att frigöra detta minne, men fortsätta att allokera det och ta upp mer och mer utrymme. Detta hänvisas till med termen minnesförlust. Omvänt är det möjligt att frigöra minne för tidigt men fortsätta använda det. Eftersom allokeringssystemet kan använda frigjort minne på olika sätt leder detta till oförutsägbara konsekvenser. Dessa problem löses på sopsamlade språk. Å andra sidan, om minne är allokerat i en funktion och måste frigöras efter att funktionen avslutas, löses detta problem genom att automatiskt anropa destruktorer i C++, eller genom att använda lokala arrayer med C99-tillägg.
Variable-argument-funktioner är också en potentiell källa till problem. Till skillnad från vanliga funktioner som har en prototyp reglerar standarden inte testning av funktioner med ett varierande antal argument. Om fel datatyp skickas, uppstår oförutsägbara, om inte dödliga, resultat. Till exempel är C Standard Librarys printf-familj av funktioner, som används för att generera formaterad text för utdata, välkänd för sitt potentiellt farliga variabel-argumentgränssnitt, som beskrivs av en formatsträng. Typkontroll i variadiska funktioner är ansvaret för varje enskild variadisk funktionsimplementering, men många moderna kompilatorer kontrollerar specifikt typer i varje printf-anrop, vilket genererar varningar när argumentlistan inte matchar formatsträngen. Det bör noteras att det är omöjligt att statiskt kontrollera ens alla anrop till printf-funktionen, eftersom formatsträngen kan skapas dynamiskt i programmet, så som regel utför kompilatorn inga kontroller för andra funktioner med ett variabelt nummer av argument.
För att hjälpa C-programmerare att lösa dessa och många andra problem har ett stort antal verktyg som är separata från kompilatorer skapats. Sådana verktyg inkluderar program för ytterligare källkodskontroll och upptäckt av vanliga fel, samt bibliotek som tillhandahåller ytterligare funktioner som inte ingår i språkstandarden, såsom kontroll av arraygränser eller en begränsad form av sophämtning.
Berättelse
Tidig utveckling
Programmeringsspråket C utvecklades vid Bell Labs mellan 1973 och 1973. Enligt Ritchie inträffade den mest aktiva perioden av kreativitet 1972. Språket kallades "C" (C är den tredje bokstaven i det latinska alfabetet) eftersom många av dess egenskaper härstammar från det gamla språket "B" (B är den andra bokstaven i det latinska alfabetet). Det finns flera olika versioner av ursprunget till namnet Bi. Ken Thompson pekar på ett programmeringsspråk
Det finns flera legender om orsakerna till utvecklingen av C och dess relation till operativsystemet, såsom för grafiska skärmar;
C99
huvudartikel: 1995 gjordes den första regulatoriska ändringen av C-standarden, men nästan ingen kände igen den). Men i slutet av 1990-talet reviderades standarden, vilket ledde till publiceringen ISO 9899:1999år 1999. Denna standard kallas vanligtvis "C99". I mars 2000 antogs och anpassades den av ANSI.
Här är några nya funktioner i C99:
- inline-funktioner (inline);
- inga restriktioner för att deklarera lokala variabler (som i C++);
- nya datatyper som long long int (för att underlätta övergången från 32- till 64-bitars tal), en explicit boolesk datatyp och en komplex typ för att representera komplexa tal;
- arrayer med variabel längd;
- stöd för begränsade pekare (begränsa);
- namngiven initiering av strukturer: struct (int x, y, z;) punkt = (.y=10, .z=20, .x=30);
- stöd för enradskommentarer som börjar med // , lånade från C++ (många C-kompilatorer stödde dem tidigare som ett tillägg);
- flera nya biblioteksfunktioner såsom snprintf;
- flera nya header-filer, som stdint.h.
Intresset för att stödja nya C99-funktioner är för närvarande blandat. Medan GCC, Sun Microsystems C-kompilator och flera andra kompilatorer för närvarande stöder de flesta av de nya C99-funktionerna, gör inte Microsofts kompilatorer det, och de två företagen verkar inte lägga till dem.
Anslutning med C++
Prioritet för verksamheten i C
Operationerna listas nedan i fallande prioritetsordning. Operationer listade på samma rad har samma prioritet. Operationer markerade R->L är högerassociativa (det vill säga när operationer med samma prioritet kombineras utan parentes utvärderas de från höger till vänster; ordningen i vilken argumenten för de flesta operationer utvärderas är dock inte specificerad och beror på implementeringar ):
Postfix-operationer | () . -> ++ -- |
Unära operationer (R->L) | ++ -- & * + - ~ ! storlek på (typ) |
Multiplikativ | * / % |
Tillsats | + - |
Klippa | << >> |
Operationsjämförelse | < > <= >= |
Jämställdhetstestning | == != |
Bitvis | & ^ | |
hjärngymnastik | && || |
Villkorlig drift (R->L) | ?: |
Tilldelningsåtgärder (R->L) | = *= /= %= += -= <<= >>= &= ^= |= |
Sekventiell beräkning | , |
Kända C-kompilatorer
|
Kompilatorer för dynamiska språk och plattformar
Ibland, för att överföra vissa bibliotek, funktioner och verktyg skrivna i C till en annan miljö, är det nödvändigt att kompilera C-kod till ett språk på högre nivå eller till virtuell maskinkod utformad för ett sådant språk.
Följande projekt är avsedda för dessa ändamål:
- Alchemy är en C/C++-kompilator för Flash- och Adobe AIR-applikationer.
- AMPC - C-kompilator för virtuell maskin
Anteckningar
se även
- Cyclone (programmeringsspråk) - en säker dialekt av C-språket
- Kategori:C-kompilatorer
Länkar
- ISO/IEC JTC1/SC22/WG14 officiella hem (engelska) . - Officiell sida för den internationella arbetsgruppen för standardisering av programmeringsspråket C. Hämtad 20 februari 2009.
C är ett ganska "urgammalt" programmeringsspråk; det bildades i början av 70-talet. Trots detta är C ett levande språk i den meningen att det används aktivt idag. Den uppfanns, användes och används för att skriva betydande delar av programkoden för Unix-liknande operativsystem. Det används också för att skriva verktyg, kompilatorer och, mindre vanligt, applikationsprogram. Det är därför C kallas för ett systemprogrammeringsspråk.
Dess överlevnadsförmåga kan förklaras av det faktum att operativsystemens operativa principer är relativt universella; de är inte föremål för de framsteg och mångfald som kan observeras i miljön för stationära och mobila program och webbapplikationer. C är inte ett språk på mycket hög nivå, det är närmare datorarkitektur. Som ett resultat är C-program kompakta och snabba.
C stöder inte objektorienterad programmering. OOP-stöd är implementerat i C++. Även om det senare uppstod från C-språket är det inte en "fortsättning" på det, utan är ett separat språk som kan läras utan att kunna C. Att lära sig C är dock nyttigt innan man lär känna sin "avancerade lillebror", eftersom Språkens syntax är liknande, C överbelastar inte hjärnan hos en nybörjare med superkrafter och lär honom att förstå essensen av vad som händer.
Är C bra för att komma in i programmering för första gången? Om du inte studerar på ett universitet inom en specialitet relaterad till IT, så nej. C kräver en förståelse för organisationen och driften av hårdvara, särskilt minne. Mycket av detta görs med pekare, de spelar en nyckelroll; detta ämne är ganska svårt att förstå och studeras vanligtvis inte i skolan.
Naturligtvis kan du lära dig grunderna i programmering med C utan att behöva lära dig pekpinnar. Men en person kommer att tro att han känner till C utan att veta mycket om det i sak. C-språket skapades av hårdvarukunniga professionella programmerare för att skriva UNIX-operativsystemet. Det var inte tänkt som ett språk för att undervisa nybörjare.
Miljöer och kompilatorer för C-programmering
Om du använder en av GNU/Linux-distributionerna kommer alla textredigerare med syntaxmarkering att fungera, du behöver också GCC och en terminal.
Det finns redigerare för programmerare som inkluderar olika tillägg, inklusive en terminal, katalogbläddring, etc. Till exempel Geany eller Atom.
C är ett kompilerat programmeringsspråk. I GNU/Linux, för att få körbara filer, används GCC - en uppsättning kompilatorer, inklusive en kompilator för C. För att få en körbar fil från en källfil (vanligtvis har sådana filer filtillägget *.c) måste du köra ett kommando i terminalen som ser ut ungefär så här:
gcc -o hej hej.c
Där gcc är ett kommando som startar ett program som utför kompilering och andra åtgärder; -o – en switch som indikerar att vi manuellt anger namnet på den körbara filen; hej – namnet på den resulterande körbara filen; hello.c är namnet på källkodsfilen. Namnet på den körbara filen kan utelämnas:
gcc hej.c
I det här fallet kommer den körbara filen att ha standardnamnet a.out.
Windows har sin egen uppsättning kompilatorer - MinGW. Den kan användas på egen hand, men ingår i den enkla utvecklingsmiljön Dev-C++, som kan vara ett bra val för att lära sig programmera i C och C++.
När du sparar, välj filtypen "C-källfiler (*.c)". Programmet kompileras och startas genom att trycka på F9-tangenten. Efter körning stängs programmet omedelbart och resultatet kan inte ses. För att förhindra att detta händer, skriv ytterligare två rader: #include
"Hello World" i GNU/Linux:
#omfatta
"Hello World" på Windows:
#omfatta
Å andra sidan finns det ett stort antal plattformsoberoende utvecklingsmiljöer. Till exempel Eclipse + CDT-modul, KDevelop, CLion. Den senare är betald, producerad av JetBrains, ledande inom IDE-utveckling, men har en 30-dagars provperiod, vilket kan räcka för träning. CLion är bekvämare än andra IDE.
"Hello World" i C
Med exemplet på ett enkelt program kommer vi omedelbart att notera några funktioner i programmeringsspråket C.
I C-språket tar funktionen main() rollen som programmets huvudgren. Denna funktion måste alltid finnas i ett komplett C-program och programkörningen börjar med den. Variablerna som deklareras inuti den är dock inte globala; deras omfattning sträcker sig endast till main(). Men i programmeringsspråket C finns nästan all programkod i en funktion, och main()-funktionen är den huvudsakliga och nödvändiga.
Som standard returnerar main()-funktionen en int-datatyp, så du behöver inte ange en returtyp. Däremot utfärdar kompilatorn en varning i detta fall.
Funktionen printf() är utformad för att skriva ut data. Dess syfte liknar proceduren write() i Pascal och funktionen print() i Python. Funktionen printf() bryts inte till en ny rad efter utskrift. Därför används ett specialtecken för övergången, vilket betecknas med kombinationen \n. Kompletta C-uttryck separeras med semikolon.
I C är I/O-funktioner inte en del av språket. Till exempel, i Python behöver vi inte importera någon modul för att använda funktionerna print() och input(). I C kan vi inte bara anropa printf()-funktionen, eftersom C själv har det helt enkelt inte. Den här funktionen, liksom ett antal andra, kan aktiveras med hjälp av rubrikfilen stdio.h. Det är just därför raden skrivs i början av programmet #omfatta
Header-filer (de slutar på *.h) innehåller vanligtvis deklarationer av vissa funktioner. En deklaration är helt enkelt en beskrivning av en funktion: vilka parametrar den tar och vad den returnerar. Själva funktionskoden (definition) finns inte i rubrikfilen, utan i bibliotek (andra filer), som kanske redan är kompilerade och placerade i systemkataloger. Innan man kompilerar ett program startas språkförprocessorn C. Den inkluderar bland annat i början av programfilen innehållet i headerfilerna som anges i den.
Praktiskt arbete
Kommentera den första raden i HelloWorld-koden. Försök att kompilera programmet. Kunde du skaffa den körbara filen? Vilken varning gav kompilatorn?
1 // - enradskommentar i C-språk; /* … */ - flerradskommentar på C-språk.
praktisk kurs
Vad det är?
En gång (1991-1992), att välja ett språk Si Som det huvudsakliga programmeringsspråket för matematikklasser stod författaren inför problemet med bristen på normala läroböcker som kunde rekommenderas till skolbarn. Detta tvingade honom att skriva sina föreläsningsanteckningar, som kunde kallas "Praktisk programmeringskurs i Si» — den innehöll den information som författaren verkligen behövde i praktiken. Många års undervisningserfarenhet har visat att sedlar verkligen efterfrågas och används flitigt av både skolbarn och akademiker.
Utvecklingsmiljön är ett gratis Dev-C++-skal med öppen källkod som inkluderar GCC-kompilatorn.
Författaren kommer att vara tacksam för feedback och konstruktiv kritik angående innehållet och utformningen av dessa material. Om du upptäcker ett fel eller har förslag, kommentarer, klagomål, förfrågningar eller uttalanden, skriv.
Licensavtal
- 1) publicering av material i någon form, inklusive publicering av material på andra webbplatser;
- 2) distribution av ofullständigt eller ändrat material;
- 3) inkludering av material i samlingar på alla media;
- 4) erhålla kommersiella fördelar från försäljning eller annan användning av material.
Nedladdning av material innebär att du accepterar villkoren i detta licensavtal.
Ladda ner
Sammanfattningen distribueras fritt i formatet PDF. Kräver gratis Acrobat Reader för att se. Kursöversikten är uppdelad i 4 delar:
- Introduktion till programmering i C (860 Kb) 29.03.2014
Att studera de grundläggande språkkonstruktionerna och teknikerna för att skriva program. - Datalagring och bearbetning (792 KB) 21.11.2013
C-språk: matriser, matriser, strukturer, teckensträngar, strukturer, rekursion. - Utveckling av program i C-språk (937 Kb) 01.03.2014
Programdesigntekniker, strukturerad programmering, heltalsalgoritmer, numeriska metoder, modellering. - Dynamiska datastrukturer i C-språk (666 KB) 11.06.2009
Listor, travar, träd, grafer.
Presentationer
Lärare och elever kan ha nytta av presentationer baserade på denna sammanfattning. De kan laddas ner på sidan Presentationer.
Metodik
Huvudmålet är att introducera eleverna till språkets grundläggande strukturer Si: loopar, villkorliga uttalanden, procedurer. Studiet av avsnitt relaterade till grafik och animation är mycket framgångsrikt.
8: e klass
Programmet innehåller följande avsnitt (en del av sammanfattningen anges inom parentes): Arrayer (II), Arbeta med filer (II), Teckensträngar (II), Roterande objekt (III), Modellering (III). Särskild uppmärksamhet ägnas åt studiet av algoritmer för att arbeta med arrayer, inklusive sökning, sortering, etc. Begreppet effektivitet hos beräkningsmetoder ges.
9: e klass
Huvudfokus ligger på att studera metoder för mjukvaruutveckling i språket Si. Eleverna genomför en individuell uppgift, under vilken de lär sig att konstruera grafer på skärmen, bekanta sig med transformationer av koordinatsystem, studera metoder för att lösa ekvationer, bekanta sig med numeriska metoder och lära sig att korrekt utforma program (avsnitt 1-2 i del). III). En av uppgifterna ägnas åt användningen Monte Carlo metoden för att beräkna arean av en komplex figur. Från de nya avsnitten studerar vi också Matriser (II), teckensträngar (II). Konceptet introduceras pekare och de enklaste operationerna med dem studeras.
Årskurs 10
Språkinlärning Si når en mer seriös nivå. Huvudteman - Minneshantering (II), Rekursion (II), Strukturer (II). Det är planerat att studera Pascal som andra programmeringsspråk. Från och med detta ögonblick skrivs algoritmer i teoretiska klasser omväxlande på två språk.
Årskurs 11
Det är inte så mycket funktionerna i språk som studeras som algoritmer. Huvudsektioner - Numeriska metoder (III), Modellering (III), Dynamiska datastrukturer (IV).
C++ programmeringsspråk
Senaste uppdatering: 2017-08-28
Programmeringsspråket C++ är ett högnivå, statiskt typat, kompilerat, allmänt programmeringsspråk som är lämpligt för att skapa en mängd olika applikationer. Idag är C++ ett av de mest populära och utbredda språken.
Det har sina rötter i C-språket, som utvecklades 1969-1973 på Bell Labs av programmeraren Dennis Ritchie. I början av 1980-talet utvecklade den danske programmeraren Bjarne Stroustrup, som då arbetade på Bell Labs, C++ som en förlängning av C-språket. Faktum är att i början kompletterade C++ helt enkelt C-språket med några objektorienterade programmeringsmöjligheter. Och det var därför Stroustrup själv först kallade det "C med klasser."
Därefter började det nya språket bli populärt. Nya funktioner lades till som gjorde det inte bara ett tillägg till C, utan ett helt nytt programmeringsspråk. Som ett resultat döptes "C med klasser" till C++. Och från och med då började båda språken utvecklas oberoende av varandra.
C++ är ett kraftfullt språk som ärver rika minnesfunktioner från C. Därför finner C++ ofta sin användning i systemprogrammering, särskilt när man skapar operativsystem, drivrutiner, olika verktyg, antivirus etc. Förresten, Windows OS är mest skrivet i C++. Men användningen av detta språk är inte begränsad till systemprogrammering. C++ kan användas i program på alla nivåer där hastighet och prestanda är viktigt. Det används ofta för att skapa grafiska applikationer och olika applikationsprogram. Det används också särskilt ofta för att skapa spel med rik, rik visualisering. Dessutom har den mobila riktningen nyligen tagit fart, där C++ också har hittat sin applikation. Och även inom webbutveckling kan du också använda C++ för att skapa webbapplikationer eller vissa stödtjänster som tjänar webbapplikationer. I allmänhet är C++ ett flitigt använt språk där du kan skapa nästan alla typer av program.
C++ är ett kompilerat språk, vilket innebär att kompilatorn översätter C++-källkoden till en körbar fil som innehåller en uppsättning maskininstruktioner. Men olika plattformar har sina egna egenskaper, så kompilerade program kan inte bara överföras från en plattform till en annan och köras där. Men på källkodsnivå är C++-program till stor del bärbara om inte vissa OS-specifika funktioner används. Och tillgången på kompilatorer, bibliotek och utvecklingsverktyg för nästan alla vanliga plattformar gör att du kan kompilera samma C++-källkod till applikationer för dessa plattformar.
Till skillnad från C låter språket C++ dig skriva applikationer i en objektorienterad stil, som representerar ett program som en samling klasser och objekt som interagerar med varandra. Vilket förenklar skapandet av stora applikationer.
Huvudstadier i utvecklingen
1979-80 utvecklade Bjarne Stroustrup en utökning av C-språket - "C med klasser". 1983 döptes språket om till C++.
1985 släpptes den första kommersiella versionen av C++-språket, liksom den första upplagan av boken "The C++ Programming Language", som representerade den första beskrivningen av detta språk i avsaknad av en officiell standard.
1989 släpptes en ny version av språket C++ 2.0, som innehöll ett antal nya funktioner. Därefter utvecklades språket relativt långsamt fram till 2011. Men samtidigt, 1998, gjordes det första försöket att standardisera språket av ISO-organisationen (International Organization for Standardization). Den första standarden hette ISO/IEC 14882:1998, eller förkortat C++98. Därefter, 2003, publicerades en ny version av C++03-standarden.
2011 publicerades den nya C++11-standarden som innehöll många tillägg och berikade C++-språket med ett stort antal nya funktioner. Efter detta släpptes ett litet tillägg till standarden, även känd som C++14, 2014. Och ytterligare en viktig version av språket är planerad till 2017.
Kompilatorer och utvecklingsmiljöer
För att utveckla program i C++ behöver du en kompilator - den översätter källkoden i C++ till en körbar fil, som du sedan kan köra. Men för tillfället finns det många olika kompilatorer. De kan skilja sig åt i olika aspekter, särskilt när det gäller genomförandet av standarder. En grundläggande lista över kompilatorer för C++ finns på Wikipedia. Det rekommenderas för utveckling att välja de kompilatorer som utvecklar och implementerar alla de senaste standarderna. Så genom hela denna handledning kommer vi i första hand att använda den fritt tillgängliga g++-kompilatorn utvecklad av GNU-projektet.
Du kan också använda IDE:er som Visual Studio, Netbeans, Eclipse, Qt, etc. för att skapa program.
Grunderna i programmering
Grunderna i programmering, grundläggande termer och begrepp
Videokursen kommer att introducera eleverna till grunderna i programmering, grundläggande termer och begrepp. Den lär dig hur du utvecklar algoritmer och ger dig verklig erfarenhet av att skapa webbprodukter. Lektionerna inkluderar en översikt över aktuella programmeringsspråk och områden, hjälper eleverna att välja de som är mest intressanta för dem och tillhandahåller material och instruktioner för vidare professionell utveckling.
Lektion 3. Första programmet
Att välja ett programmeringsspråk. Förbereder webbläsaren. Program "Hej världen!"
Lektion 4. Variabler
Installera en bekväm kodredigerare. Introduktion till variabler. En enkel miniräknare.
Lektion 5. Datatyper
Datatyper. Verksamhet med olika typer av data. Datatypkonvertering.
Lektion 6. Algoritmer och flödesscheman
Algoritmiskt tänkande. Visuella flödesscheman.
Lektion 7. Filialoperatör if
Välja alternativ i programmet. Filialoperatör om. Ett spel med gåtor.
Lektion 8. Logiska operationer
Komplexa urvalsvillkor. Logiskt OCH, ELLER. Spelet "Angry Birds".
Lektion 9. Gör, medan loopar
Gör och medan loopar. Spela rysk roulette.
Lektion 10. För loop
For-slingan. Finansiell kalkylator.
Lektion 11. Matriser
Stora datamängder och arrayer. Roulette spel.
Lektion 12. Funktioner
Funktioner. Förbereder att skriva spelet "Black Jack (21)".
Lektion 13. Spelet "Black Jack". Del 1
Skriver ett helt spel. Grunden är att dela ut kort och räkna poäng.
Lektion 14. Spelet "Black Jack". Del 2
Slutförande av skrivandet av spelet. Fastställande av resultat och vinnare.
Lektion 15. Programmeringskarriär
Genomgång av de viktigaste riktningarna i programmering. Hur väljer man ett programmeringsspråk? Vad ska du studera härnäst?
Introduktion till Git
Git Basics
Under loppet av 13 videor går vi igenom grunderna i Git versionskontrollsystemet. Låt oss ta reda på varför det är viktigt i modern utveckling och samarbetsprogrammering. Låt oss bekanta oss med de grundläggande begreppen i Git: repositories, commits, grenar och taggar. Låt oss lära oss grundläggande funktioner: skapa och klona ett arkiv, slå samman grenar, fråga om ändringshistorik och mycket mer. Låt oss se hur man skickar in läxor med Git. Detta är en grundkurs, varefter du kan börja lära dig vilket programmeringsspråk som helst. Dessutom kommer du att förberedas för intervjun, där flera frågor brukar fokusera på versionskontrollsystemet.
Lektion 1. Introduktion till versionskontrollsystem
Vad är ett versionskontrollsystem?
Typer av versionskontrollsystem
Git och dess fördelar
Dokumentation
Lektion 2. Arbeta med kommandoraden
Vad är kommandoraden?
Varför är kommandoraden viktig?
Hur öppnar man kommandoraden?
Användbara kommandon
Lektion 3. Arbeta lokalt med ett Git-förråd
Introduktion till konsolklienten
Git-inställning
Initierar förvaret
Kloning av ett arkiv
Grafiska git-klienter
Lektion 4. Grundläggande funktioner
Indexering
Publicerar ändringar
Begår
Avbryt indexering
Nuvarande status
Lektion 5. Historik om git-projektet
Historia av förändringar
Återställ enligt projekthistorik
Ändra krediter: git blame
Ignorerar .gitignore-filer
Webbplatsen gitignore.io
Att hålla mappar.Keep
Lektion 6. Grenar
Filialledning
Skapa och ta bort grenar
Växla mellan grenar
Konfliktmetoder och deras lösning
git merge
Lektion 7: Skapa ett fjärrlager för Git
Git-värd (GitHub, GitLab, Bitbacket)
Skapa ditt eget bare-git-förråd
Registrera dig på GitHub
Publicerar ändringar i ett fjärrlager
Lektion 8. Borttagna grenar
Förvarsnamn
Flera förråd i ett projekt
.git/config
Hantera filialer på ett fjärrlager
Lektion 9. Versionering
Versioneringsmetoder
Taggar och deras relation till commits
Lägger till en tagg
Ta bort en tagg
Hantera en tagg på ett fjärrlager
Lektion 10. Sammanfogning och överföringar
Vi slår samman förändringarna. git merge
Vi flyttar grenarna. git rebase
Flytt begår. git cherry pick
Vi slår samman åtagandet till ett. git squash
Krokar
Smeknamn
Lektion 11. Gitflow
Hur används det och varför?
Testcykler
Eventuellt blå/grön
Släpp grenar
Snabbkorrigeringar
Lektion 12. SSH
SSH-protokoll
Varför används den?
Skapa nycklar
Spedition
SSH agent
Kopiera filer via SSH
Windows: Git för Windows
Använder SSH med Git
Lektion 13. Lämna in läxor via Git
Grundläggande databas. 20 lektioner.
Databasdesign och SQL-frågor
Databaser (DB) är datalagrings- och bearbetningssystem som nås med hjälp av SQL-språket (Structured Query Language). Alla moderna webbplatser, spel eller stationära applikationer behöver datalagring. För tillfället finns det många olika databashanteringssystem (DBMS), det mest populära är MySQL. "Databas Basics" är 20 intensiva videolektioner (10 minuter vardera), där vi kommer att gå igenom alla stadier av databasdesign med exemplet med en onlinebutik som använder frågespråket SQL. Efter den här kursen kommer du att kunna använda olika databaser, såsom MS SQL och Postgre Sql, eftersom SQL-syntaxen för dem är praktiskt taget densamma.
Lektion 1: Relationsdatabaser
Vad är skillnaden mellan en databas och en DBMS; vilka databaser kallas relationella; översikt över moderna DBMS.
Lektion 2. Installera ett DBMS
Installation av MySql DBMS och Mysql Workbench grafiska applikation.
Lektion 3. Databasdesign, normala former
Datadesign i Excel; normala former; primärnyckel.
Lektion 4. SQL CREATE-kommando
Skapa tabeller i MySql Workbench GUI; CREATE kommando; datatyper; arbeta i konsolen.
Lektion 5. SQL INSERT-kommando
Fylla tabeller med data med hjälp av ett grafiskt gränssnitt; INSERT kommando; AUTOMATISK ÖKNING.
Lektion 7. SQL-kommandon DISTINCT, ORDER BY, LIMIT
Ta emot och filtrera data med SQL-kommandon DISTINCT och LIMIT; sortering med kommandot ORDER BY.
Lektion 9: Datakonsistens
Begreppet konsistens eller konsistens av data.
Lektion 10. Främmande nyckel
Konceptet med en främmande nyckel och restriktioner för kolumnvärden; UTLÄNDSKA NYCKELBEGRÄNSNINGAR.
Lektion 11. Skapa tabeller med en många-till-många-relation
Lägga till en varukorg i onlinebutikens databas.
Lektion 12. Sammansatt primärnyckel
Använda en sammansatt primärnyckel när du designar en tabell med en många-till-många-relation.
Lektion 13. Sammanfoga data från flera tabeller
Hämta data från flera sammanhängande tabeller; inkonsekvens i tillvägagångssättet med flera SELECT.
Lektion 14. INNER JOIN-operatör
Sammanfoga data från flera tabeller med INNER JOIN-operatorn.
Lektion 15. Operatörer LEFT JOIN, RIGHT JOIN
Sammanfoga data från flera tabeller med operatorerna LEFT JOIN och RIGHT JOIN.
Lektion 16. UNION-operatör
Kombinera resultaten av flera SQL-frågor med UNION-operatorn.
Lektion 17. Aggregationsfunktioner
Aggregerande funktioner COUNT, SUM, MIN, MAX.
Lektion 18. GROUP BY operator
Gruppera en vald uppsättning rader med hjälp av GROUP BY-satsen.
Lektion 19. Index
Filtrera i GROUP GENOM att använda HAVING; öka hastigheten för exekvering av frågor med hjälp av index.
Lektion 20. Transaktioner
Transaktionskoncept; TRANSACTION uttalande; ACID-krav för transaktionssystemet.
Linux. Arbetsstation. 1 månad.
Öva på att administrera Linux OS på en dator
GNU/Linux är ett populärt operativsystem som leder marknaden för serverhårdvara och används också som ett inbyggt operativsystem i industri- och konsumentutrustning, och till och med som skrivbordsprogram. GNU-komponenter används också i MAC OS X, och GNU/Linux påverkar också Windows. Bekantskap med Linux är nödvändig för en systemadministratör, testare, webbprogrammerare, informationssäkerhetsspecialist och alla utvecklare som hävdar medel eller högre status. Den här kursen täcker grunderna i att arbeta i Linux: grunderna för att arbeta i Linux-skalet, hantera användare och filbehörigheter, reguljära uttryck och skriva skript i bash, arbeta med processer och hantera boot och tjänster i Linux. Förståelse av programmeringsgrunder, talsystem (binära, oktala, hexadecimala) och boolesk logik
Lektion 1. Introduktion och installation
Introduktion till GNU/Linux. Vad är GNU, Linux och UNIX. Virtualisering. Installera Ubuntu i en virtuell maskin. Grundläggande Linux-funktioner
Lektion 2. Arbeta i grafiskt och konsolläge
Konsol och grafiskt läge i Linux; konsolkommandon; skapa och redigera filer.
Lektion 3. Filer och behörigheter i Linux
Användare och rättigheter i Linux; arbeta med filer; utföra operationer för superanvändarens räkning.
Lektion 4. Reguljära uttryck
Vanliga uttryck. Sök. sed.
Lektion 5. Bash-programmering
Syntax. Lag. Variabler. Kontrollstrukturer. Några enkla skript. Kör schemalagda uppgifter med cron
Lektion 6. Webbtjänster
Linux-nätverksfunktioner. Webbservice. Nginx, Apache2. Låt oss kryptera. Nätverksfilter netfilter och verktyg iptables.
Lektion 7. Introduktion till Git
Introduktion till Git.
Lektion 8. SOA och introduktion till Docker
Monolitisk och SOA-applikationsarkitektur. Introduktion till Docker
Lektion 1. Introduktion
Introduktion till språket, en kort historia. Programöversikt. Grundläggande språkbegrepp. Variabler och datatyper
Lektion 2. Villkor och loopar
Betingelser. Boolesk algebra och binära beräkningar. Cyklar. Loop Control och Switch Statement
Lektion 3. Funktioner, arrayer och pekare
Funktioner. Pekare. Matriser. Flerdimensionella arrayer
Lektion 4. Strängar, strukturer och att arbeta med minne
Rader. Data struktur. Filsystem. Dynamisk minnesallokering
Kursen är avsedd för både nybörjare och dig som redan talar andra programmeringsspråk eller C++-språket, men på en otillräcklig nivå, samt för dig som saknar en tydlig förståelse för organisationen av datalagring och bearbetning i kompilerade datorprogram . C++ är ett allmänt bruksspråk och, genom att kombinera egenskaperna hos både högnivå- och lågnivåspråk, kan du lösa det mest omfattande utbudet av problem som uppstår i programmering. Kursen introducerar ganska fullständigt studenten till förmågan hos språket C++ som är inneboende i den för att uppnå dessa mål.
Lektion 1. Sammanställt språk. Stadier av översättning och sammansättning av program
- Varför behöver du C++?
- Utvecklingsverktyg i C++.
- Hur ett sammanställt språk fungerar.
- Stadier av att sända ett program.
- Hur byggskriptet fungerar.
- Analys av läxor.
Lektion 2. Namn i programmet. Data, typer, funktioner och variabler
- Namn, typer och variabler.
- Variabel och nummerrepresentation.
- Beräkningsbarhet.
- Fungera. Koncept och mening.
- Funktioner och deras argument.
- Enkla arrayer.
- Analys av läxor.
Lektion 3. Konstruera en algoritm i C++
- Block. Konceptet med en algoritm Namnutrymme.
- Villkorlig verksamhet.
- Ständigt flerval.
- Cyklisk villkorad drift medan.
- Iterationshantering (cykelrepeterbarhet).
- Räknecykel.
- Exceptionella situationer.
- Analys av läxor.
Lektion 4. Procedurprogrammering
- Att sätta ihop ett projektskelett för Qt Creator.
- Vi får tillgång till datafilen.
- Formathack: dechiffrera datalagringsmetoden.
- PNM/PGM-formatavkodning.
- Sidodatatransformationer: läsning av bilddimensioner.
- Konstruktion av utdatahistogrammet och datautmatningen.
- Analys av ett programutkast skrivet i en procedurstil.
En kurs för nybörjarutvecklare som är bekanta med grunderna i språket C eller C++. Hjälper dig att förstå grundläggande datastrukturer och grundläggande algoritmer. Ger en allmän förståelse för processerna inom programmet och grundläggande färdigheter i att bygga upp algoritmernas arbete. Kursen är inte knuten till ett specifikt programmeringsspråk, och trots att allt förklaras med C som exempel kan kunskapen appliceras i vilket imperativt programmeringsspråk som helst.
Lektion 1. Introduktion och bekantskap
Lektion 2. Algoritmkomplexitet och enkla algoritmer
Lektion 4. Arrayer
Lektion 5. Komplex sortering av arrayer
Lektion 6. Stackar, köer och listor
Lektion 7. Dynamiska datastrukturer
Lektion 8. Träd
Lektion 9. Grafer
Lektion 10. Hashtabeller
Lektion 11. Introduktion till kryptografi
Objektorienterad programmering. 1 månad.
Dyk in i OOP
Kursen introducerar studenterna till de bästa programmeringsteknikerna i C++. De grundläggande principerna för effektiv användning av objektorienterad programmering för att skriva program kommer att behandlas, liksom typiska aspekter av driften av stream I/O-biblioteket. Under utbildningen kommer eleverna att skriva ett fullfjädrat spel med hjälp av de kunskaper de har förvärvat. Kursen är designad för nybörjare C++ programmerare som har genomgått nivå 1 - procedurprogrammering.
Lektion 1. Namngivna tillstånd
Exportera namn. Funktionsnamn överbelastning (global).
Lagra funktioner i ett tillstånd. Tillgänglighet för namnutrymme. Nyckelord offentliga och privata. Vi introducerar begreppet ett objekt. Vi introducerar begreppet klass. Det ursprungliga lagrade tillståndet.
Lektion 2. Arv
Styr åtkomst till basklassen. Konstruktörer och arv. Skapa en klasshierarki på flera nivåer. Pekare till härledda klasser. Enkelt och multipelt arv.
Lektion 3. Virtuella funktioner och polymorfism
Grunderna för virtuella funktioner. Rena virtuella funktioner och abstrakta klasser. Tidig och sen bindning. Överbelastning av funktioner och metoder. Parametrisk polymorfism
Lektion 4. Relationer mellan objekt i C++
Sammansättning, aggregering, association, beroende. Containerklasser. Typkonverteringsoperatorer. Exempelprogram i C++
Lektion 5: Dela funktioner och metoder
Operatör överbelastning. Funktions- och klassmallar. Explicit och partiell specialisering av mallar. Exempel på enkla program
Lektion 6. I/O-trådar
Hierarki av strömklasser. I/O-operationer för standardtyper. Organisera I/O för anpassade typer. Arbeta med filer och buffertar i minnet. Utdataformateringsverktyg, manipulatorer
Lektion 7. Stödjer modularitet. Att skriva ett blackjackspel
Sammanställningsenheter. Uppdelning i header och implementeringsfiler. Preprocessordirektiv, makron och villkorlig kompilering. Att skriva ett blackjackspel
Lektion 8. Undantagsmekanism
Arousal och situationsbearbetning. Stapelvikning, utförande av konstruktörer och destruktörer. Stöd för klasshierarki.
Standard undantagsklasser. Exempel på program som använder undantagssituationer
Kursen för dig som fortsätter att lära sig programmering i C++ är tillägnad minneshantering och arbete med data på låg nivå. Det ger en uppfattning om principerna för minneshantering i ett C++-program, organisering av datalagring och adresseringsfunktioner. En separat del av kursen talar om systemet av C++-typ och transformationer mellan datarepresentationer. Dessutom visas kortfattat funktionerna i C++-förbearbetning med möjligheten att generera källtext under översättning.
Lektion 1: Grundläggande minneshantering
Lektion 2. Hantera skrivning. Typ system
Lektion 3. Förbearbetning. Villkorlig sammanställning
Utveckling av program med grafiskt gränssnitt i C++. 1 månad.
Qt Framework
Lektion 1. Qt Creator: Grunderna
Vad är Qt? Kort översikt över funktioner (hjälp, qtdemo, lingvist, uic, etc.). Installation av QT-biblioteket och utvecklingsmiljön. Konfigurera Qt Creator för arbete (välja en kompilator, debugger, katalog, etc.). Skapande och lansering av den första applikationen (Hej världen!). Widgets. Olika typer av textutmatningsfält. Knappar och indikatorer.
Bearbetar signaler från widgets.
Lektion 2. Modularitet i Qt
Core Qt-moduler. Klassernas hierarki. Principen om modularitet. Separation av motor och gränssnitt. Begreppet "modell - representation". Lista, träd, tabell och metoder för att visa dem. Skydda utdatafält. Dokumentation om Qt-moduler och klasser. QMaga och autobygga system för projekt. System för att kompilera och ansluta modules.pro-filen
Lektion 3. Arbeta med data i Qt.
Containerklasser. Iteratorer. Sekventiella behållare. Associativa behållare. Arbeta med strängar. Läsa, visa och spara bilder. Arbeta med filer och kataloger. I/O-strömmar. Grundläggande metoder för att öppna en fil QFile, QFileDialog. Programresurser.
Lektion 4. Interaktion mellan objekt i Qt
Qt objektmodell. Minneshantering. Hierarki av objekt. Signaler och slots. Ansluta och koppla bort objekt. MOC är en kompilator för metaobjekt. Principen för evenemangsslingan. Händelsebearbetning. Mus- och tangentbordshändelser. Händelsefilter. Stöd för olika språk. Programlokalisering. Dynamisk språkförändring (QLinguist). Åtkomst till kommandoraden från ett program
Lektion 5. GUI-utveckling i Qt
QWidget klass. Typer av widgets. Hierarki av widgets. Ansluter OpenGl och andra utdatabibliotek från tredje part. Utveckling av formulär i Qt Designer. Använda formulär i projekt. Widgetlayout. Policy för ändra storlek. Ansluter signaler till platser. Ingångsfokus. Stilark. Färgpalett. Skapa dina egna widgets.
Lektion 6. Utveckla ett fönstergränssnitt i Qt
Gränssnitt för ett dokument och flera dokument. Barn- och föräldraskärmar. Underklasser (QDialog och etc.) Huvudfönster. Verktygsfält. Statusfältet. Skapa en meny. Rullgardinsmenyn. Innehållsmeny. Dialogrutor. Öppna, spara och skriva ut dokument.
Lektion 7. Arbeta med grafik och text i Qt
QPainter ritningskontext. Koordinatsystem. Punkt, linje, rektangel, polygon. Fjädrar, borstar. Färgmodeller. Gradienter. Graphics View Framework. Scen och uppträdande. Text med formateringselement. Teckensnitt. Arbetar med HTML-uppmärkning. Utgång och sparande. WebEngine. Implementering av en enkel webbläsare.
Lektion 8. Timers, processer och trådar i Qt
Datum och tid. Timerhändelser. Processer. Startar, springer och stannar. Strömmar. Multithreading. Utbyte av signaler och händelser. Synkronisering. Mutexes
Lektion 9. Qt Quick-teknik
QML-språk. Användargränssnittselement. Styr placeringen av element. Grafiska element. Arbeta med bilder och typsnitt. Arbeta med mus, tangentbord och pekplatta. Implementering av animation. Använda QML i ett projekt
Lektion 10. Ytterligare utvecklingsverktyg och Qt-byggverktyg
Programtestning. Typer av fel. QDebug. Steg för steg felsökning. Kontrollpunkter. Varierande fönster och anropskedjor. Enhetstestning. GUI-testning. Typer av projektbyggen (felsökning, utdata, profilering). Qt Creator och versionskontrollsystem. Git. Hitta relaterade bibliotek. Hur man skickar en applikation till en kund (utan källkoder) så att den definitivt körs för honom
Lektion 11. Arbeta med databaser (DB) i Qt
Kort information om SQLite DBMS. Grundläggande operationer när du arbetar med en databas. Qt-verktyg för att arbeta med SQLite. Genomförande av arbete med databasen genom konceptet "modell - representation". Bygga och ansluta andra databasbibliotek (Postgresql/mysql/ets)
Lektion 12. Att arbeta med nätverk i Qt
Nätverksprotokoll på hög och låg nivå. Anslutning via uttag. Klient-server-modell. Nätverksåtkomstkontroll. Ansluter till databaser på servern
Under praktiken kommer du att utveckla en OpenSource textredigerare som Emacs i C++ med plugins. Du kommer att få samarbetsförmåga, arbeta med git och tasktracker, och även bli bekant med Agila utvecklingsmetoder, SCRUM, KANBAN.
Lektion 2. Introduktion till flexibla metoder. Uppgiftsspårare
Scrum och Kanban metoder. Hur man tar sig an uppgifter. Fördelarna med initiativ och ansvar. Uppgiftsspårare i Kanban-stil. Att sätta SMARTA mål. Tekniska specifikationer. Användarberättelser. Användningsscenarier.
Lektion 3. Agil utveckling. Scrum och Kanban
Agil metodiks värden. Scrum (detaljer). Kanban. Implementeringsfel. Lastkult. Mikroförvaltning. Varför transparens behövs och hur man uppnår det. Scrum chat.
Lektion 4. Risker och deadlines
Risker med planering och förvaltning. Deadlines och deras värde. Tidsplanering.
Lektion 5. Motivation
Maslows pyramid. Tre nivåer av motivation. Hur motiverar man sig själv? Motivation enligt Lebedev. Liknelse om hunden. Disciplin.
Lektion 6. Problem och lösningar
Fel vid planering och insamling av krav. Ledningsmisstag: mikrohantering, imitation. Konsekvenser: omsättning, övertid, nattarbete. Försök att införa nya krav och förändringar. Saknar deadlines. Hopplösa projekt. Ansvar. Räddning av projektet. När ska man sluta? Svänga.
Lektion 7. Mentorskap
Laghantering. Varför mentorskap är viktigt. Hur ofta måste en programmerare vara mentor? Ledarskapsförmåga. Delegation. SMARTA mål. Förmåga att lära.
Lektion 8. Produktkvalitet
Råvara. Kvalitetsprodukt. Snabbt fungerande prototyp. Kod av hög kvalitet. Balans. Avslag på viss funktionalitet. Funktionstestning. Svart och vit låda. Ät din egen hunds mat.
Lektion 9. Att skriva ett CV
Mjuka färdigheter. Hårda färdigheter. Jobbar på ditt CV.
Lektion 10. Förberedelser inför en intervju
Intervju med HR-chef och blivande chef.
Lektion 11. Karriär i ett IT-företag. Utsikter
Vilka företag är värda att söka till? Utveckling av en specialist. Junior, Mellan, Senior, Team Lead, CTO. Förvaltning.
Lektion 12. Sammanfattning
Genomgång av vad som har uppnåtts. Avskedsord.
Hur man blir en programmerare. 13 lektioner.
Steg-för-steg-instruktioner för att hitta ett jobb
En karriär inom programmering är en spännande resa in i den moderna teknikens värld. Varje utvecklare har sin egen historia och erfarenhet. Det finns dock en grundläggande algoritm som hjälper dig att ta de första stegen korrekt och leda till ditt mål. Vi har förberett 13 videolektioner där vi svarat på de mest angelägna frågorna om en programmeringskarriär i företag och på frilansmarknaden. Funderar du ofta på att skaffa ett jobb och känner att du är redo att börja tjäna pengar? Då är denna videokurs för dig.
Lektion 1. Yrke "Programmerare"
Funktioner i yrket; FAQ; efterfrågan på arbetsmarknaden.
Lektion 2. Karriärvägledning
Kommer jag att bli en framgångsrik programmerare? Framgångsfaktorer.
Lektion 3. Låt oss börja skriva ett CV
Det viktigaste är det första intrycket; vad ska man kalla positionen.
Lektion 4. Välja ett programmeringsspråk: webbutveckling
Granskning av språk för webbplatsutveckling: HTML, CSS, JavaScript, PHP, Python, Ruby, C#, Java; rätt val.
Lektion 5. Mobil utveckling. Universella programmeringsspråk
Översikt över språk: Java, Objective-C, Swift; C#, C++, Python: rätt val.
Lektion 6. Regler för ett effektivt CV
Lista över tekniker; portfölj; diplom och certifikat; personliga kvaliteter. Syn på en teknisk specialist och HR.
Lektion 7. Jobbsökning: vad, var, när
Drömjobb, psykologiska aspekter; begäran teknik.
Lektion 8. Intervju och provanställning
Intervjuer för programmerare: hur man beter sig, vad man ska säga, vad man ska lyssna på; prövotid och regler för att passera den.
Lektion 9. Frilansande: första stegen
Granskning av frilansande plattformar; registreringsfunktioner; kontoregistrering; hur man sticker ut bland majoriteten av artister.
Lektion 10. Frilansande: komma igång och hitta beställningar
Ordersökningsstrategi; prioritering av beställningar: vad man ska ta sig an; Förhandling; uppgifter och fallgropar i tekniska specifikationer; metoder för att kontakta kunden; skriva svar och fånga kunders uppmärksamhet; rätt frågor.
Lektion 11. Frilansande: orderuppfyllelse och betalning
Betalningsmetoder: banköverföring eller kontanter; förskottsbetalning eller efterskottsbetalning; en översikt över situationer där varje metod kommer att fungera bättre; förberedelse för arbete och bindande avtal med kunden; funktioner i arbetsprocessen; slutskedet av samarbetet; dela feedback; "konsult"-teknik.
Lektion 12. Specialiteter inom området IT
Hur går utvecklingen till i stora företag? Vilka är analytiker, designers, testare, arkitekter, projektledare, teamledare osv.
Lektion 13. Karriärstege inom IT
Hur ser karriärstegen inom IT ut? Inom vilka specialiteter är det lättare att börja din resa? Vilka är utvecklingsutsikterna?
Kursen, utvecklad tillsammans med EnglishDom-skolan, kommer att hjälpa dig att bemästra viktiga engelskspråkiga ämnen som är relevanta för nybörjare IT-specialister. Maximal övning och fokus på IT-ordförråd. 10 lektioner omfattar utarbetande av CV:n, tekniska specifikationer och affärsbrev, intervjuer och förhandlingar, internationell kommunikation när du marknadsför ditt projekt. I levande dialoger på engelska kommer eleverna att förstärka fraser som kommer att vara användbara i deras arbete för utvecklare och testare, marknadsförare och designers.
Lektion 10. Starta upp
Vi pratar om vårt projekt och presenterar teamet på engelska.