Kodning???
Lad os nu antage at jeg som er nybegynder i kodning og i linux verdenen for den sags skyld, ville kode lidt, som min donation til open source miljøet så at sige...
Jeg sidder på en Ubuntu 10.10 dist. og jeg ville lave en lidt mere lækker udgave af:
grub boot loader(altså den del hvor du vælger hvad du vil boote op.
Jeg har altid godt kunne tænke mig at kode lidt på hobby basis, men har aldrig rigtigt vidst hvad jeg skulle ende med...
Hvad skulle jeg bruge af:
Program til at kode i?
Hvilket sprog skulle der kodes i?
Layout dertil(program at designe i)?
Hvordan skulle det publiceres(blive en del af en linux dist.), hvis det endte med succes ?
Hvor kunne jeg finde hjælp til kodning(jeres referencer)?
Noget jeg har glemt ?
Eller er det for stort et projekt for lille mig ???
- Log in to post comments
Kommentarer7
Jeg tror du skal starte med
Jeg tror du skal starte med noget mindre. Boot loadede er ikke lige et projekt for begyndere hvis det skal laves ordentligt (læs se pænt ud hvilket er dit krav). Grub kan desuden themes med nogle ekstra ting så du behøver faktisk ikke at kode noget som helst for at gå en pænere grub :)
Lad os tage spørgsmålene enkeltvis:
Program til at kode i?
Det kommer ret ofte an på hvad for et sprog du vil skrive i samt hvad du vil programmere. Jeg koder fx Java og C i Eclipse og C# i Visual Studio og bruger så nogen gange en alm. editor til lidt af hvert. Som begynder er at det i starten en meget god ide at lave programmerne i en alm. editor uden nogen fancy hjælp så du kommer til at forstå hvilke processer der ligger bag ved. Når du så har styr på dette kan du begynde at lede efter programmer der gør arbejdet nemmere.
Hvilket sprog skulle der kodes i?
Kommer meget an på hvad du vil kode (jeg vælger lige at ignorere dit forslag om at lave en boot loader). Hvis du fx skal lave web programmering kunne PHP jo være et godt bud. Hvis det er alm. scripting er Bash nok ikke dumt at lære. Jeg har hørt mange sige at man skal starte med Python men det sprog har jeg aldrig lært så det skal jeg ikke kunne sige noget om.
Hvis jeg skulle anbefale et sprog så start med C eller Java. Det kan godt være at nogen siger de er alt for avanceret men jeg mener nu stadig at det er godt at starte her og lære ting som type tjek.
Layout dertil(program at designe i)?
Jeg vil til hver en tid anbefale at lære at kode først og så begynde at lege med GUI. Personligt roder jeg så sjældent med GUI programmering at jeg stadig ikke har fundet frem til noget godt værktøj at lave det i på Linux.
Hvordan skulle det publiceres(blive en del af en linux dist.), hvis det endte med succes ?
Jaja ro på mester. :D
Hvis dit program bliver så populært så vil de forskellige distributioner højst sandsynligt selv adoptere dit program hvis du bare sørger for at host din source kode et eller andet sted. Nu bruger jeg selv Arch Linux og her kan alle brugere tilføje pakker til vores user repo (AUR) så her kan du fx selv sørge for at dit program kommer med.
Hvor kunne jeg finde hjælp til kodning(jeres referencer)?
Kommer meget an på sproget. Selv bruger jeg bare google til at søge efter forskellige vejledninger og lign. Hvis du vælger at starte med Java kan jeg 100% anbefale bogen "Head First Java" som er en kanon bog hvis du skal starte med at lære Java og objekt orientering generelt.
Noget jeg har glemt ?
Hvor skulle jeg vide det fra? Hvis du mangler et formål med din programmering og kan godt lide matematik og algoritmer kan jeg anbefale Euler Project:
http://projecteuler.net/index.php?section=problems
Nogen af opgaverne er svære men de første af dem er meget sjove og nemme. Opret en bruger og indtast dine løsninger. Derefter kan du se hvordan andre har løst opgaven samt tips og tricks til bedre løsninger. Det er en kanon måde at lære at lave effektive algoritmer på :)
Eller er det for stort et projekt for lille mig ???
Som sagt tidligere er det nok et for stort projekt lige at starte med. Prøv at starte med noget mere enkelt eller se på Euler linket om der ikke er noget spændende der. :)
Du er velkommen til at stille flere spørgsmål hvis det er. Selv går jeg på softwareingeniør studiet på 5. semester på Aalborg Universitet.
(Lille ekstra info)
Hvis du kan lide at lege med LEGO og har en RCX eller NXT kan du programmere Java, C eller C++ til disse og lave nogle nice konstruktioner. Vores softwaregruppe har nu i 2 semestre lavet LEGO konstruktioner som en del af vores projekter. Projekterne kan ses på vores YouTube channel her:
http://www.youtube.com/s406a
Vi holder kanalen opdateret løbende når der sker noget spændende med projekterne. Der er planer om at komme med en video der beskriver vores seneste system lidt mere teknisk. :)
Held og lykke med det hele.
Tak for svar
Tak for repsonsen julle:)
Hvordan skulle det publiceres(blive en del af en linux dist.), hvis det endte med succes ?
Jaja ro på mester. :D
Haha man skal vel tro på det, ellers kan man da lidt så godt lade være.. :)
/out
som en lille side note kan
som en lille side note kan jeg oplyse at der findes et projekt som det du beskriver.
http://code.google.com/p/burg/wiki/Screenshots
Du kan jo evt snakke lidt med dem om de har nogle nybegynder opgaver du kan løse.
#3 Tror jeg da lige jeg vil
#3 Tror jeg da lige jeg vil kigge nærmere på :)
Tak for hintet !
Re: #0
Som julemanden skriver, så er det godt at kunne PHP og Bash. Men prøv også
lige fra en terminal at skrive locate .py så får du et svar, der siger, at det også
er godt at kunne noget python, som julemanden også nævner.
Kodning skal foregå i Emacs
Kodning skal foregå i Emacs :D
Og dog, foreløbig gør jeg følgende:
Java - Emacs
C - Eclipse
PHP - Eclipse
Og så vil jeg slutte mig til at det er en god ide at lære Python først eller JAVA
Edit:
Hvis du har mulighed for det så læs kapitel 0x200 i Hacking - The art of explotation
Det er fra side 5 til 114 og det har hjulpet mig en del til at komme igang
Hvordan skulle det
Hvordan skulle det publiceres(blive en del af en linux dist.), hvis det endte med succes ?
Hvis du bidrager kode til et eksisterende projekt, så vil det automagisk komme med i fremtidige udgivelser af de distros - hvis ellers de shipper den pågældende pakke.
Hvis du laver dit helt eget projekt, så vil man typisk hoste det på gitorious.org, savannah.nongnu.org, sourceforge.net e.l. Så kan man enten håbe at distributionerne af sig selv finder programmet og begynder at pakke det - eller man kan hjælpe lidt på vej ved selv at bygge pakker til de forskellige distributioner og se om man kan få dem inkluderet i de officielle repositories, eller evt. lave sit eget 3.parts repo.