Wie kann man als Programmierer weiter vorankommen? [closed]

Lesezeit: 6 Minuten

In den letzten, hmm, 6 Monaten habe ich mich mit Programmieren in C beschäftigt, ich habe mir K&Rv2, BEEJs Socket Guide, Expert C Programming, Linux Systems Programming, die ISO/IEC 9899:1999 Spezifikation (echt und kein Entwurf) besorgt. . Nachdem ich sie von Amazon erhalten hatte, ließ ich Linux installieren und kam dazu.

Ich bin mit K&R fertig, ungefähr auf halbem Weg durch Expert C Programming, fühle mich aber als Programmierer immer noch schwach. Ich bin sicher, dass es viel mehr als 6 Monate des Lesens dauert, um wirklich kompetent zu werden, aber meine Frage ist folgende:

Ich habe alle Übungen in K&Rv2 (in Kapitel 1) und einige in anderen Kapiteln gemacht, von denen die meisten im Allgemeinen wirklich langweilig sind. Wie verbessere ich meine Fähigkeiten und werde wirklich großartig? Ich habe Geld, Zeit und einen allgemeinen Lebensstil für etwas investiert, das ich mir wirklich wünsche, aber ich bin mir nicht sicher, wie ich es genau erreichen soll.

Könnte mir vielleicht jemand erklären, wenn ich ständig codieren muss, was genau ich codieren soll? Ich bin mir ziemlich sicher, dass das Programmieren von Hallo-Welt-Programmen mich nicht mehr lehren wird, als ich bereits über irgendetwas weiß.

Ein Freund von mir sagte, „lies“ (mit Betonung auf lesen) jeden Tag eine Handbuchseite, aber Lesen ist alles, was ich tue, was ich tun möchte, aber ich bin mir nicht sicher, was! Ich interessiere mich für Sicherheit, aber ich bin mir als Anfänger nicht sicher, was ich codieren soll, das als ausreichend angesehen wird.

  • Auf dem gleichen Weg gelangen Sie zur Carnegie Hall.

    – kemiller2002

    12. März 2010 um 17:48 Uhr

  • Für viele Fragen, wie Sie Ihre Programmierkenntnisse verbessern können, führen Sie eine Google-Suche nach “site:stackoverflow.com Improve Programmer” durch – dies wurde hier schon oft gestellt.

    anon

    12. März 2010 um 17:49 Uhr


  • Die Frage wurde geschlossen, als ich gerade posten wollte: Welche Art von Programmierung interessiert dich? Wenn Sie Webprogrammierung mögen, richten Sie eine Webanwendung ein. Wenn Sie Desktop-Programmierung mögen, schreiben Sie eine Desktop-Anwendung. Lesen Sie nicht um des Lesens willen. Lesen Sie, weil Sie mehr über etwas erfahren möchten, das Sie sind schon tun. Mein erstes richtiges Projekt war eine einfache Web-App für Bücher. Ich wollte etwas, um meine Leseliste im Auge zu behalten, also habe ich eine Web-App eingerichtet, die das für mich erledigt. Arbeiten Sie an etwas, das Sie verwenden würden.

    – Matt McCormick

    12. März 2010 um 18:24 Uhr

  • 6 Monate sind aber nicht so lange. Zum Vergleich: Ich lerne seit 9 Monaten Salsatanzen. Ich bin gut darin, die Schritte im Unterricht zu lernen, aber wenn ich zum Gesellschaftstanz gehe und auftreten muss, fühle ich mich immer noch wie ein Anfänger. Der Lernstil ist derselbe – es werden viele Stunden benötigt, um gut zu werden. Genießen Sie die Praxis. Weiter so. Du machst das großartig.

    – Matt McCormick

    12. März 2010 um 18:25 Uhr

  • „Ich bin sicher, dass man mehr als 6 Monate lesen muss, um wirklich begabt zu werden“ – man kann 10 Jahre lang lesen, aber man wird nicht begabt sein. Um geschickt zu werden, schreiben Sie Code. Fehler machen. Lerne von ihnen. Spülen und wiederholen.

    – Michael Stumm

    5. Juli 2011 um 17:59 Uhr

Programmieren lernen in 21 Tagen
Von Abstruse Gans

Ebenfalls, Programmieren in zehn Jahren selbst lernen

  • +1 Ich denke, das dritte Panel ist der wichtigste Schritt, gefolgt vom vierten.

    – Grant Palin

    23. März 2010 um 17:59 Uhr

Was Ihnen beim Lernen wirklich helfen würde, ist zu lernen ein Projekt starten. Es könnte alles sein, einen Chat-Client/Server implementieren, eine Unix-Shell, ein einfaches Programm zum Speichern von Einkaufslisten, was auch immer. Der Punkt ist, wenn Sie etwas auswählen, das Sie interessiert, und daran arbeiten, es umzusetzen, werden Sie überrascht sein, wie viel Sie dabei lernen, und Sie werden nicht aufhören wollen, weil Sie an etwas arbeiten, das für Sie von Bedeutung ist.

Im Grunde lernst du nur so viel durch Lesen. Um wahres Wissen zu erlangen, müssen Sie sich durcharbeiten real Probleme.

  • Abgeordnet – Sie werden mehr lernen, wenn Sie an einem Lieblingsprojekt arbeiten, das Sie motiviert, als von allgemeinen Übungen aus einem Buch oder einer Website. Tun hilft Ihnen auch, sich an die Theorie zu erinnern …

    – CJM

    12. März 2010 um 18:14 Uhr

  • +1 – Dies ist wirklich die einzige Antwort, die für mich Sinn macht. Sie können nicht wirklich verstehen, was Sie weiß nicht bis Sie auf reale Probleme stoßen, die Sie über die Grenzen dessen hinausziehen, was Sie sind wissen.

    – Mark Brittingham

    13. März 2010 um 0:15 Uhr

  • +1- Ich stimme zu, das ist der einzige Weg. Lernen Sie von Projekten, die Sie nicht machen können, weil sie Ihr Können übersteigen, und bauen Sie in jedes neue Projekt etwas Neues ein (verwenden Sie Klassen, Vererbung, Schnittstellen usw.). Manchmal kann das Erstellen eines Spiels eine unterhaltsame Lösung sein.

    – Dominik K

    5. April 2010 um 3:04 Uhr

Die meisten davon sind im Allgemeinen wirklich langweilig

Lernen Sie etwas, das Sie interessant finden, dann ergibt sich der Rest von selbst.

Peter Norvig hat einige Ideen dazu

Versuchen Sie, einige nicht-triviale Algorithmen zu implementieren. Ich weiß nicht, welche Beispiele in den Büchern enthalten sind, aber Sie könnten versuchen, zu schreiben

  • Ein algebraischer Taschenrechner. Geben Sie “sin(2) + 5! * 3^(1/2)” ein und Sie erhalten 208,755394335 als Ausgabe.
  • Ein Texteditor mit Syntaxhervorhebung von Grund auf neu.
  • Schreiben Sie einen Encoder/Decoder für PNG (oder jedes andere Bild- oder Tonformat) von Grund auf neu.
  • Schreiben Sie einen Bildeditor (zum Beispiel Flutfüllung ist nicht ganz trivial)

  • Haha, ja, ich habe einen monochromen BMP-Reader mit einem Hex-Editor und durch Umdrehen von Pixeln in MS Paint erstellt 🙂

    – Jacob

    12. März 2010 um 18:27 Uhr

Sie sagen, Sie interessieren sich für Sicherheit. Schlagen Sie einige Exploits nach und versuchen Sie, sie zu verstehen. Besser noch, versuchen Sie selbst, einen Exploit für eine bekannte (besser: unbekannte) Schwachstelle zu finden.

Schreiben Sie einen NNTP-Client oder einen SMTP-Server oder -Client und verwenden Sie ihn zum Senden Ihrer E-Mails. Viele dieser Internetprotokolle sind einfach genug, um nicht sehr schwierig zu implementieren (die meisten textbasierten Protokolle), aber nuanciert genug, um interessant zu sein, und sie haben die Verbindung zur realen Welt, die sie befriedigender macht als ein “Hallo”. Welt“ Programm.

Oder wie wäre es mit dem Schreiben eines Linux-Kernel-Moduls? Sie sind nicht so schwer zu schreiben, es gibt nur eine kleine Eintrittsbarriere (viel zu lernen, bevor Sie Ihr “schwarzes Dreieck” haben können). Erstellen Sie ein Zeichengerät, das einen endlosen Strom des letzten Bytes zurückgibt, das Sie ihm geschrieben haben (nennen Sie es /dev/fortytwo, wenn Sie möchten). Stellen Sie dann sicher, dass es funktioniert, wenn zwei Prozesse es gleichzeitig verwenden.

Suchen Sie nach einem Projekt mit beschissenem Code, aber freundlicher Community, und bereinigen Sie einiges davon. GCC und der Kernel wären hier eine schlechte Wahl 🙂

  • Haha, ja, ich habe einen monochromen BMP-Reader mit einem Hex-Editor und durch Umdrehen von Pixeln in MS Paint erstellt 🙂

    – Jacob

    12. März 2010 um 18:27 Uhr

“lesen” und üben was Sie lesen, was der beste Weg ist.

1093540cookie-checkWie kann man als Programmierer weiter vorankommen? [closed]

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy