Ich bin ein Informatikstudent im zweiten Jahr in Äthiopien, Afrika. Wir haben C und C ++ genommen und ich habe mir selbst HTML, CSS, PHP (auch cakePHP Framework) und wenig Javascript, JQUERY und mySQL beigebracht, um kleine Systeme wie Blog zu entwickeln. Aber ich möchte große Systeme bauen, die sicher und robust sind. Ich bin sehr geehrt, sehr intelligente und erfahrene Entwickler hier in SO zu sehen. Ich bin schwankend, was am Anfang zu folgen ist (zB ASP.NET oder PHP) und welche anderen Sprachen oder Systeme ich lernen sollte, um das zu ermöglichen. Danke im Voraus.
PS. Ich kann mit jeder Art von Mathematik umgehen.
Ich fühle mich wie ein alter Mann, wenn ich das sage, aber mit der Zeit werden Sie feststellen, dass die zwei größten Herausforderungen in der Softwareentwicklung sind:
Wie beantwortet das Ihre Frage?
Konzentriere dich darauf, bei diesen beiden besser zu werden. Wählen Sie die Bibliotheken / Frameworks / Plattformen / Sprachen, die Sie mögen, und halten Sie für geeignet, um Ihre Aufgaben zu erfüllen. IMHO PHP ist aus mehreren Gründen keine gute Sprache, aber am Ende solltest du das verwenden, was dir gefällt und mit dem du dich gut fühlst. Ich persönlich benutze haXe für meine Projekte. Vielleicht möchtest du es versuchen. Am Ende denke ich, dass Sie viele Sprachen und Frameworks ausprobieren sollten, um verschiedene Konzepte zu verstehen. Die meisten Dinge, die Sie lernen werden, gehen über konkrete Sprachen und Frameworks hinaus, aber Sie können sie nur lernen, indem Sie einige von ihnen wirklich, wirklich gut kennen lernen.
Bevor ich fertig bin, möchte ich Sie auf meine 5 Gebote hinweisen;)
greetz
back2dos
PayPal begann nicht groß - es wurde im Laufe der Zeit groß, weil sie erfolgreich waren. Und sie wurden wegen einer bestimmten Plattformwahl nicht erfolgreich. Sie waren aufgrund ihres Geschäftsmodells aufgrund der von ihnen erbrachten Dienstleistungen und der von ihnen angezogenen Kunden erfolgreich.
Also lerne entweder ASP oder PHP oder beides. Sie sind ungefähr gleich nützlich für einen Programmierer. Und in etwa in der Lage, hochskalierbare Systeme zu unterstützen.
Bei großen Systemen dreht sich alles um die Kopplung zwischen Komponenten und Tests.
Kurse wie "Software-Architektur" und "Software-Engineering" sollen Ihnen gut beibringen, wie Sie Systeme entwerfen (Kopplung und Kommunikation zwischen Komponenten richtig gestalten). Ich war ein wenig enttäuscht von meiner Einschätzung der Universität, aber es wird dir helfen, zumindest über die richtigen Dinge nachzudenken.
Dann zum Testen, schauen Sie sich eine Test Driven Development -Methode an. Die Testabdeckung ist sehr wichtig, wenn Robustheit und Sicherheit eine Rolle spielen.
Schließlich könnte ich sogar empfehlen,
Beginne mit dem, was du weißt. Die großen Probleme, die Sie sehen, sind wirklich eine Ablenkung für jemanden, der bei Null beginnt.
Hier gibt es zwei Ziele. Tackle sie einzeln:
Erstellen von komplexen Systemen:
Große komplexe Systeme entstehen durch zwei Dinge:
Dies zu erreichen, kann die Partnerschaft mit anderen Menschen bedeuten. Klar, du sind an der technischen Seite der Dinge interessiert - das ist Ihre Stärke. Möglicherweise müssen Sie andere Personen finden, die Ihre Vision teilen, um zu helfen Verwalten Sie die nicht-technische Seite der Dinge. Das würde Sachen wie einschließen Kapitalbeschaffung, Promotion und Marketing. Jedes Mitglied Ihrer Gruppe sollte bringen Sie eine andere Kernstärke mit.
Als technischer Führer brauchen Sie ein festes Verständnis für die Anwendung die Architektur. Das ist weniger ein Problem mit Programmierkenntnissen als Es ist zu verstehen, wie verschiedene Entwurfsmuster und Technologien genutzt werden können Deine Tore. Erfahren Sie ein wenig über so viele Frameworks und Entwurfsmuster wie Sie können. Das musst du nicht Werden Sie ein Experte auf jedem von ihnen, bis Sie ein Gefühl für die Stärken haben und Schwäche von jedem in Bezug auf die Anwendung, die Sie suchen bauen.
Generelle CS-Fähigkeiten aufbauen
Theorie wird nie langweilig. Erhalten Sie einen starken Hintergrund in der wissenschaftlichen Seite Ihres Computer-Engineering-Programm. Kurse in Sprachtheorie, diskrete Mathematik, Algorithmenentwurf / -analyse, Computerarchitektur, Anwendungsarchitektur usw. Diese werden Ihnen für den Rest Ihrer Karriere gut tun.
Dann gibt es die praktische Seite des Problems: Über welche Sprachen, Technologien und Frameworks sollten Sie jetzt lernen? um Ihre Karriere zu fördern (mit der Hoffnung, etwas wirklich Großes zu machen). Zu diesem Zweck sind Sie bereits auf dem richtigen Weg. Sei neugierig, exponiere dich so viele Werkzeuge wie du kannst. Je mehr Dinge Sie wissen, desto leichter ist es zu lernen neue. Nehmen Sie sich die Zeit, um zu verstehen, auf welchem Modell jedes Tool basiert und wie Es ist ähnlich wie andere Werkzeuge, die Sie verwendet haben.
Denken Sie daran, dass Programmiersprachen sind nur die "Werkzeuge des Handels", nicht der Handel selbst. Im Laufe der Zeit werden Sie finde neue Werkzeuge und verwerfe andere.
Alles zusammenfügen
Lassen Sie Ihrer Fantasie freien Lauf mit dieser "Killer-App". Freunde machen mit Leute, die Fähigkeiten haben, die deine eigenen ergänzen. Rede und träume über große Dinge zusammen.
Arbeiten Sie an der Entwicklung Ihrer CS-Kernkompetenzen
Machen Sie sich mit so vielen verschiedenen Tools und Sprachen vertraut, wie Sie es gewohnt sind. Erhalten ein Englisch: www.mjfriendship.de/en/index.php?op...39&Itemid=32 gute Kenntnisse über die wenigen, die dir am nützlichsten sind, egal was du gerade machst Moment. Die Beherrschung eines einzigen Werkzeugs kann Jahre dauern, aber lassen Sie es Aktuelle Bedürfnisse müssen Sie anleiten. Seien Sie darauf vorbereitet, dass sich Ihr technisches Tool im Laufe der Zeit weiterentwickelt.
Ich denke, es ist keine Frage von Sprache oder Systemen. Wenn Sie ein guter Programmierer sind, werden Sie sich leicht an jede Art von Programmiersprache oder Framework anpassen können.
Für die Art von System, das Sie programmieren möchten, müssen viele Frameworks berücksichtigt werden. alle mit ihren Vor- und Nachteilen. Ich würde vorschlagen, dass Sie versuchen, von Leuten zu lernen, die es schon einmal gemacht haben, sehen Sie, was die großen Unternehmen verwenden, und mehr lernen.
Vergessen Sie neben der Sprache nicht den SSL / Verschlüsselungs- / Sicherheitsteil.
Paypal benötigt wie alle Zahlungssysteme einen starken Sicherheitsplan, der implementiert werden muss, um (so viel wie möglich) zu gewährleisten.
browser <-> server
Tags und Links asp.net web-applications programming-languages web-services network-protocols