Informatik für Programmierer


8

Ich bin ein autodidaktischer Programmierer und programmiere seit 8 Jahren. Aufgrund dieser Erfahrung bin ich bereits sehr vertraut mit den Prinzipien der Programmierung (wie if-Anweisungen, Klassen, Polymorphismus usw.).

Ich habe jedoch nie "Informatik" gelernt, sondern nur Programmieren. Was sind einige gute Ressourcen für jemanden in meiner Position, um Informatik selbst zu studieren - dh Ressourcen, die sich schnell bewegen und grundlegende Programmierkenntnisse voraussetzen?


gesammelt std / populäre cs refs
vzn

Dann sind Sie bei uns genau richtig.
SDsolar

Dann sind Sie bei uns genau richtig.
SDsolar

Antworten:


11

Informatik ist eine facettenreiche Disziplin - und Algorithmen und Datenstrukturen sind ein wichtiger Bestandteil davon. Sie können kostenlose Videokurse wie Algorithmen, Teil 1 von der Princeton University ausprobieren - sie laufen gerade.

Ein weiterer bemerkenswerter kostenloser Videokurs Algorithmen: Design und Analyse, Teil 1, von Stanford wurde kürzlich fertiggestellt - hoffentlich wird er in Zukunft wiederholt. Teil 2 dieses Kurses beginnt diesen Montag.


OK. Ich habe im Internet gesucht und es sieht so aus, als ob eine allgemeine Algorithmusklasse genau das ist, wonach ich suche.
Shivam Sarodia

9

Nun, dies ist meine erste Antwort hier und ich bin auch weniger erfahren als Sie. Betrachten Sie es also als eine Antwort eines Anfängers, die für Sie oder andere irrelevant sein kann. Aber ich werde versuchen, den Wert der Frage mit meiner Antwort zu bewahren!

Lassen Sie uns zunächst den Bereich der Informatik oder den Lebenszyklus eines am Erlernen von CS Beteiligten diskutieren (nur skizzieren). Wahrscheinlich fehlen mir einige. Es kann auch Unklarheiten hinsichtlich ihrer Positionierung geben. Aber es geht wie folgt: -

  1. Computergrundlagen (Allgemeines Arbeiten mit Computern) und Einführung in Computer
  2. Programmiersprache und ihre Verwendung zur Lösung realer Probleme mithilfe von Computern
  3. Variationen der Programmiersprache (funktional, objektorientiert, prozedural) und ihrer verschiedenen Prinzipien
  4. Datenstrukturen und Algorithmen // einer der wichtigsten Teile und das Rückgrat von CS
  5. Grundlagen von Computersystemen --- Diskrete Mathematik, ein Teil der digitalen Elektronik
  6. Software Engineering // wieder einer der wichtigsten Teile und das Rückgrat von CS
  7. Betriebssystem --- Mein Lieblingsfach in der CS-Branche und auch die wichtigste Kernbranche der CS, die gesamte CS läuft zumindest darauf. Sie benötigen eine Maschine, um Dinge auszuführen, die sogar auf der Modellierung basieren
  8. Computerarchitektur --- Es ist wieder eines der wichtigsten Themen, um die Grundfunktionen der Arbeit mit Computern zu kennen
  9. Datenbanken sind jede Anerkennung wert! Hervorragende Entdeckung.
  10. Computernetzwerke --- ein sehr schöner Abschnitt von CS, der sich auf Netzwerke bezieht (reale Verbindungen)
  11. Berechnungstheorie, Automaten, Compiler - mein zweites Lieblingsfach, alles in einem Abschnitt, der Zustandsänderungen sowie Sprachbildung und -operation beschreibt.
  12. Data Mining & Maschinelles Lernen --- Das fortschrittlichste Gebiet der Informatik heutzutage und tatsächlich eines der informativsten
  13. Künstliche Intelligenz & Neuronale Netze & Fuzzy-Logik - ganz zu schweigen von der besten Simulation im wirklichen Leben

Nun zurück zur Frage. Ich denke, Sie müssen jedem Abschnitt die Möglichkeit geben, tief zu gehen und zu versuchen, Ihr interessiertes Gebiet zu finden. Es dauert einige Jahre, bis eine Person entscheidet, welches Feld für sie am besten geeignet ist.

Sie sollten nicht direkt zu einem Feld springen, das nur einen Programmierabschnitt umfasst !!! Programmiersprachen sind nicht "so" wert, wie sie dargestellt werden. Der wichtigste Teil ist die grundlegende Modellierung, Funktionsweise und Generierung von Ideen und neuen Theorien, die das CS-Feld verbessern. Also, laut mir sollten Sie jedes Feld auf einmal ausprobieren, etwa eine Woche lang, und sehen, dass Sie sich wirklich am meisten von ihnen angezogen fühlen! Dies gibt Ihnen zuerst das Thema zum Mitnehmen!

Kommen Sie jetzt zu den Online-Ressourcen. Es gibt viel zu sehen. Heutzutage finden Sie viele Tutorials, Videos und Vorträge im Internet. Die gefragtesten mit brillantem Prunkstück sind jedoch:

  1. www.coursera.org
  2. www.nptel.ac.in
  3. www.khanacademy.org

und so weiter.

Versuchen Sie, diese häufiger zum Erlernen der CS-Grundlagen zu verwenden. Abgesehen davon haben Sie Suchmaschinen immer einen Klick entfernt, um das Thema anzugeben, mit dem Sie Schwierigkeiten haben.


2

Als Programmierer sollten Sie folgende Dinge gemäß der grundlegenden Informatik wissen:

  1. Grundlegende Programmierprinzipien
  2. Datenstrukturen
  3. Software-Engineering-Methodik
  4. Verschiedene Programmiertechniken (abhängig vom Algorithmus)
  5. Grundkenntnisse zum Testen des Codes

Sie können diese Kurse über MOOC erhalten .

Coursera bietet verschiedene Kurse mit guten Ressourcen an. Wenn Sie möchten, können Sie sich dort anmelden.


Sie scheinen die Frage rückwärts zu haben. Es geht nicht darum zu fragen, welche Aspekte der Informatik für Programmierer relevant sind. Es wird gefragt, wo ein Programmierer Ressourcen finden kann, um etwas über Informatik zu lernen.
David Richerby

-1

Andere Kurse, die ich studiert habe (und die ich für wichtig halte):

  1. Entwurfsmuster (wie Singleton, Fassade, Fabrik usw.)
  2. Diskrete Strukturen

Asymptotische Komplexität ist auch in CS ein sehr wichtiges Thema. Ich würde "Einführung in Algorithmen" als gutes Nachschlagewerk für Datenstruktur und Algorithmen empfehlen. Sie können dann bei Project Euler üben . Abgesehen davon bietet MIT Kurse MIT Open CourseWare bei YouTube an. Ich finde ihre Datenstrukturkurse sehr hilfreich.

Eine andere Sache, die ich vorschlagen kann, ist, das CS-Kursbuch einer Universität zu durchsuchen, um die Themen zu erhalten und herauszufinden, welche von Interesse sind, und sie zu studieren.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.