Programmierdienste anbieten, wo?

8 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Als ich 16 war, habe ich hier ne Menge Aufträge bekommen:

http://www.gulp.de/

Damals noch für knapp 300 Mark Stundenlohn ... aber das war Ende der 90er, bzw. Anfang der 00er Jahre ... wie das heute bei Freelancern aussieht, weiß ich leider nicht, da ich seit vielen Jahren selber Chef bin, und nicht wirklich auf externe Programmierer angewiesen bin.

Allerdings würde ich mir - wie in den anderen Kommentaren bereits erwähnt - Gedanken um einen Gewerbeschein (Einzelunternehmen) machen. Bedenke dabei aber die exorbitanthohen Kosten für eine private Krankenversicherung. Ich bezahle alleine dafür ca. 500 Euro im Monat und diese Kosten steigen pro Jahr um 20 bis 40 Euro (in letzter Zeit eher mehr als weniger!).

PS: Wenn ihr "meint" C++ zu können oder gar zu beherrschen, dann legt mal zusammen und kauft euch das Buch "Modern C++ Design: Generic Programming and Design Patterns Applied" von "Andrei Alexandrescu". Aber fallt beim Lesen nicht vom Hocker! :) (ISBN 978-0201704310)

PPS: In der Softwareentwicklung macht das "Programmieren" an sich, nur einen kleinen Teil der eigentlichen Entwicklungszeit aus ... dir / euch muss klar sein, dass da viiieeeeel mehr dazu gehört, als etwas Code in eine IDE zu hacken! Das ganze Drumherum (Testen auf dem Build-Server, die Suche nach Memory-Leaks, und mindestens 40 weitere Punkte ...) will ebenfalls beherrscht werden! :)

Danke für deine Antwort kriegst meinen Stern in 24h ^^ Und das mit dem Testen und managen weis ich schon das werde ich schon alles Regeln, bin nähmlich der Hardware Freak unter denen :D Um genau zusein kann ICH kein C++ und JAVA sondern die bin nur begabt in den anderen Dingen und arbeite in einem "Nebenjob" tagtäglich mit Servern. Jedoch habe ich diese 40 Punkte nicht verstanden jönntest du wenn du Zeits hast oder so ein paar von denen Auflisten :)

PS: Das Buch werde ich ihnen definitiv empfeheln xD

0
@WAnonymous

Also die 40 waren eine grobe Schätzung ... es sind mit Sicherheit weit über 30, aber vielleicht auch über 50! Während des Schreibens haben sich meine Synapsen dann auf 40 als goldenen Mittelweg geeinigt. :)

Ganz zum Schluss gibt es noch mal ein paar allgemeiine Hinweise, aber Ich werde mal Stichpunktartig die wichtigsten Hauptpunkte anreißen:

  • Backup UND Recovery: Klingt jetzt erstmal primitiv, aber viele Firmen haben tatsächlich keine vernünftige Backup-Strategie für ihre Daten und Projekte! Und die, die eine glauben zu haben, merken erst im Ernstfall, dass sie einen Fehler gemacht haben, und nicht mehr - oder nur mit sehr viel zusätzlichem Aufwand - in der Lage sind, ihre Dateien wiederherzustellen. Also überlege dir wie du deine Daten sicherst, und teste auch die Wiederherstellung derselben!

  • Verschlüsselung: Überlege dir was du wo und wie verschlüsselst. Wenn dein Kumpel seinen Arbeitslaptop in der Bahn liegen lässt, und sensible Projektdaten von einem Kunden gelangen irgendwie ins Netz, dann zahlt ihr euch dumm und dämlich. Das gleiche gilt für Kommunikation. Gewöhnt euch OTR-Verschlüsselungen bei Chats und Mails mit PHP bzw. S/MIME an. Datenträger und Backups sollten ebenfalls vernünftig verschlüsselt sein. (Ich hatte es selbst in meiner Firma schon mit Industriespionage zu tun, also bitte befolge meinen Rat! Wenn es erst mal zu spät ist, ist es zu spät.)

  • Versionskontrolle: Habe ich schon erwähnt, und ist so umfangreich, um ganze Bücher zu füllen. Je nach Projekt sollte man hier wählen, auf welches System man setzt.

  • Bug Tracker: Einen vernünftigen Bugtracker für das Projekt, damit alle den Überblick behalten. Hier bitte ebenfalls in die einschlägige Literatur einlesen.

  • Dokumentation: Für Entwickler und Enduser, bzw. Kunden.

  • Wiki: Ein Wiki ist oft sehr hilfreich für Endbenutzer, aber das wird euch in eurem Falle wohl eher weniger betreffen.

  • Source Beautifier: Möglichst automatisiert beim Checkout den eigenen Präferenzen anpassen. So kann jeder in seinem "eigenen" Stil programmieren, und am Ende sieht im Repository trotzdem alles schön gleich aus.

  • Multi-Compiler Support: Verschiedene Compiler liefern verschiedene Fehlermeldungen und Hinweise, bzw. erzeugen anderen Binärcode. Wenn man von Anfang an darauf achtet, bei der Entwicklung und bei Tests mehr oder weniger automatisch zwei oder drei verschiedene Compiler zu benutzen, ist man nicht an einen einzigen Hersteller gebunden und fällt nicht gleich aus allen Wolken, wenn beim Compilerhersteller eine Katastrophe passiert, und was noch wichtiger ist: Man kann vereinzelt auftretende Compilerfehler fast völlig ausschließen. (Dieser Punkt gilt vor allem für den Embedded-Bereich!)

  • Statische Code Analyse: Hierfür bitte die entsprechenden Werkzeuge studieren. Z.B. Splint für C oder PMD für Java, etc.

  • Code-Coverage: Vor allem im Bezug auf Tests wohl eines der wichtigsten Hilfsmittel. Wer ohne Code-Coverage testet, kann sich das Testen auch gleich komplett sparen! Viele Firmen geben sich mit 90+ Prozent Testabdeckung zufrieden, aber bei mir verlässt nichts unter 100% das Haus. Es ist zwar manchmal ein Krampf, aber getestet bekommt man immer ALLES ... auch wenn es sehr aufwändig ist! :)

  • Metriken: Daran kann man ganz gut den Fortschritt erkennen, und statistische Spielereien ableiten.

  • Statische- und dynamische Bibliotheken: Wenn man eine Bibliothek schreibt, sollte man darauf achten, dass sich diese sowohl statisch als auch dynamisch linken lässt, es sei denn, eine der beiden Varianten ist bewusst unbeabsichtigt. Ich stoße immer wieder auf das Problem, dass man eine ganz tolle Bibliothek hat, die sich in der entsprechenden Umgebung aber entweder nur statisch oder dynamisch linken lässt. Das ganze könnte der Bibliothekshersteller binnen 5 Minuten in einem Build-Skript automatisieren, aber meistens gibt es völlig grundlos NUR eine der beiden Möglichkeiten. Wenn ihr Bibliotheken programmiert, macht ihr euch sicherlich Freunde, wenn ihr sowohl statisches als auch dynamisches Linken erlaubt! (Und ja, für beides gibt es gute Gründe!) Das gleiche gilt für Dritt-Bibliotheken, die man in eigenen Projekten verwendet ... einfach mal abwägen, was sinnvoller ist!

  • Pre-Compiled-Headers: Sollte man mal gehört haben, auch wenn es in den meisten Projekten nicht benötigt wird.

  • Memory-Leaks: Ebenfalls schon erwähnt, aber verdammt wichtig! Sollte auch zusammen mit den Tests laufen. Memory-Leak-Tests können auch völlig automatisiert am Wochenende laufen ... oftmals findet man dabei echt hartnäckige Bugs!

  • Fuzzing: Nicht nur Memory-Leaks, auch andere Bugs kann man sehr gut mit Fuzzing finden. Das gilt vor allem für Bibliothekscode! Völlig abgesehen von Sicherheitslücken ist so ein Fuzzer ein wunderbares Tool um Grenzfälle auszutesten!

Kein Platz mehr ... geht gleich weiter ...

1
@WAnonymous

Hier gehts weiter (Man kann pro Beitrag leider nur 5000 Zeichen tippen ... dämliches Limit):

  • Packaging: Anstatt jeden Freitag den Praktikanten ranzusetzen, der eine Setup.exe zusammenklickt oder ein deb-Package baut, sollte dieser Vorgang automatisiert bei (fast) jedem Build ablaufen, sodass man jederzeit releasen kann. (Das ist dann aber auch eine Frage des Projektmanagements, und für einige Leute eine Glaubensfrage.)

  • Logging: Man sollte einen guten (!!!) Loggingmechanismus verwenden, der über mehrere Loglevel und Ausgabekanäle verfügt. Fehlermeldungen mit "printf()" auszugeben ist nicht wirklich schön, und eine ziemliche Schlamperei. Die Ausgabe eines vernünftigen Loggers lässt sich auch sehr leicht durch andere Software oder Skripte parsen, was widerum bei der Testautomatisierung enorm hilfreich ist.

  • Profiling: Hin und wieder sollte man mal testen, ob die gefühlt performant laufende Software auch wirklich performant ist! Hatte erst gestern den Fall, dass ein Programm kompiliert mit dem GCC und -O0 (also völlig ohne Optimierungen) ca. 3.5 Sekunden für die Ausführung benötigt, und mit -Ofast bzw. -O3 fast 5 Sekunden verbrät. Das wäre mir ohne Profiler vermutlich erst wesentlich später - wenn überhaupt - aufgefallen. (Anmerkung: Es war nicht mein Fehler, es war tatsächlich ein Bug im GCC!)

  • Byte-Order der jeweiligen Architektur: Ebenfalls sehr primitiv, aber wenn man darauf nicht achtet, entstehen die blödesten Fehler. Vor allem wenn man portabel programmiert. :)

  • Fallbacks: Wenn die Software einen Fehler erkennt, gibt es oftmals andere Möglichkeiten als das Programm zu killen und eine Fehlermeldung auszugeben. Wenn etwas nicht funktioniert, könnte man es auch auf eine andere Art und Weise versuchen. Das macht nicht immer Sinn, aber gerade bei Pfadangaben wäre es schön, wenn diesen Hinweis einige Softwarehersteller berücksichtigen würden.

  • Verschiedene UI-Modi: Viele Programme bieten verschiedene Modi in ihren User-Interfaces an. Das gilt sowohl für GUI, als auch Konsole. Z. B. Quiet-Normal-Verbose oder Anfänger-Normal-Profi oder Strikt-Normal-Verzeihend. Gerade bei Anwendersoftware und Bibliotheken ist es oft echt eine große Hilfe, wenn man hier umschalten kann. Ein gutes Beispiel hierfür ist "PaintshopPro" oder die Konfigurationsdialoge diverser OpenSource Programme.

  • Nummeronyme: Guck dir mal die ganzen Nummeronyme an (i18n, l10n, a11y, usw.). Jedes einzelne dieser Themen ist wichtig für die Softwareentwicklung. Das hat Microsoft aber leider noch nicht begriffen, weshalb z. B. japanische Software meistens nicht ohne Probleme auf einem deutschen Windows läuft, und umgekehrt. (Zum Vergleich: Unter Linux funktioniert das z.B. seit jeher tadellos!) Wichtig ist auch ein vernünftiger Umgang mit verschiedenen Textkodierungen und Stringtypen.

So, es gibt noch eine Million weitere Punkte, die man beachten sollte, und ich habe nur an der Oberfläche gekratzt! Von UML, QS oder XP sollte man auch schon mal etwas gehört haben. Und dann sind wir nur erst mal beim Programmieren, bzw. bei der Projektorganisation.

Man sollte sich natürlich auch mit dem Thema beschäftigen, wofür man gerade eine Software schreibt. Wenn man sich z.B. dazu entschließt, eine SSL-Bibliothek zu schreiben, sollte man vorher auch mal ein Kryptografie-Buch gelesen haben. :)

Naja, ... wie gesagt gibt es noch soooooooo viel mehr, aber ich will hier den Rahmen nicht weiter sprengen.

Trotzdem viel Spaß mit eurer Idee! Vielleicht wird ja was draus! :)

PS: Du solltest ALLES immer irgendwie automatisieren können! GUIs sind Zeitfresser! Ein Skript ist Tausend mal schneller und bei häufigen Wiederholungen fehlerfreier! :)

1
@TeeTier

Danke für den Tipp. Hab meine "Kollegen" dein Kommentar gezeigt und die sind begeistert und ein bichen erschreckt ;D Wie danken die alle und werden es auf jedenfall anwänden. Und nochmal danke -

0
@WAnonymous

Gern geschehen! :)

Aber wie gesagt, ich habe wirklich nur an der obersten Oberfläche gekratzt. Um wirklich gut zu sein, fallen mir spontan noch viel viel viel mehr Punkte ein.

Aber ich denke, dass ich schon genug geschrieben habe.

Gute Nacht! :)

0
@TeeTier

Edit: Im Abschnitt zu "Verschlüsselung" sollte es anstatt "PHP" natürlich "PGP" heißen! Das war ein dämlicher Vertipper, der den Sinn völlig entstellt. Ich hoffe, es war klar, was ich gemeint habe. :)

0

Erstens meldet Ihr Euch beim Finanzamt mit dieser selbständigen Tätigkeit und sprecht auch mit der Krankenkasse, wie viel ihr im Studententarif verdienen dürft. Auch andere Stellen bedenken, die davon ausgehen, dass ihr zu mehr als 50% der Woche Studenten seid und nicht selbständig.

Ihr beherrscht Java und C++? Mutiger Spruch, wie ich finde.

Vielleicht ist Projektwerk.de eine gute Anlaufstelle? Ansonsten vielleicht auch freelancer.com

Klar behreschen kann man nicht alles, aber wir sagen wir mal so wir/sie "können" es

0

Aber geht es auch ohne sich beim Finanzamt anzumelden sozusagen "privat" oder ist das wiederum illigal

0

Habt ihr euch schon angemeldet? also Gewerbeschein weil das wäre ja auch ein wichtiger Punkt. Ansonsten probierts doch auch mal über ne Kaltaquise also potentielle Kunden einfach mal anrufen. Machen anfangs viele Startups

es reicht die Anmeldung als freiberufliche Tätigkeit beim Finazamt anzumelden.

0

Kleinunternehmer Gewerbe anmelden: Kostet ca. 50€, bissl Papierkram. Dann hier mal versuchen: Bloggerjobs.de, Webmasterpark.net, Elitepvpers.com. Consultdomain.de und bei Facebook gibts es massig Gruppen im Bereich Online Marketing. DA werden immer mal kleine Aufträge vergeben.

Viel Erfolg!

Danke für den Tipp und die vielen Webseits. Aber eine Frage hätte ich noch geht das auch ohne dass man sich beim finanzamt anmeldet, es nimmt ja Zeit und Kosten in anspruch und als Student hat man diese Mittel nicht immer gleich zur verfügung :)

0
@WAnonymous

Kosten sind da ja eher sehr gering ohne Anmeldung bedeutet Schwarzarbeit was sicher noch mehr zeit und Geld kostet wenns rauskommt. Frimen setzen eure rechnungen ja schließlich von der Steuer ab

0
@ppihes

Ahso... Gut zuwissen, dann ab zum Finanzamt xD

0

wenn Ihr die freiberufliche Tätigkeit angemeldet habt könnt Ihr Euch auf Business-Sozialplattformen anbieten.

Was möchtest Du wissen?