
Heute feiern wir die Menschen, die täglich dafür sorgen, dass die Welt ein wenig ordentlicher wird – die Tester. An diesem Tag eröffnet GeekUniversity von Mail.ru Group für diejenigen, die den Reihen der Kämpfer gegen die Entropie des Universums beitreten möchten. Das Kursprogramm ist so gestaltet, dass man den Beruf "Softwaretester" von Grund auf erlernen kann, selbst wenn man zuvor in einer ganz anderen Branche gearbeitet hat.
Außerdem veröffentlichen wir die Geschichte der GeekBrains-Studentin Maria Lupandina (). Maria ist Doktorin der technischen Wissenschaften mit dem Schwerpunkt "Akustik". Derzeit arbeitet sie als Softwaretester in einem großen Ingenieurbüro, das Software für medizinische Einrichtungen entwickelt.
In meinem Artikel möchte ich die Möglichkeit eines deutlichen Karrierewechsels aufzeigen. Bevor ich Testerin wurde, hatte ich nicht viel mit Informationstechnologie zu tun, abgesehen von den Aspekten, die für meinen vorherigen Job erforderlich waren. Doch unter dem Druck verschiedener Faktoren, die ich im Folgenden ausführlich beschreibe, entschloss ich mich, den akademischen Bereich zu verlassen und in die IT zu wechseln. Es hat funktioniert, und nun kann ich meine Erfahrungen teilen.
Wie alles begann: Technologie trifft Wissenschaft
Nach meinem Studium in Biomedizintechnik begann ich in einem Industrieunternehmen als Laboringenieur zu arbeiten. Es ist eine recht interessante Tätigkeit, bei der ich für die Messung und Kontrolle der Produktparameter sowie der Rohstoffe in verschiedenen Produktionsphasen verantwortlich war.
Ich wollte ein guter Fachmann werden, weshalb ich mich schrittweise in die Fertigungstechnologien vertiefte und angrenzende Fachrichtungen erlernte. Als die Notwendigkeit aufkam, habe ich beispielsweise die Methode für chemische Analysen zur Qualitätskontrolle von Wasser studiert, wobei ich staatliche Standards und branchenspezifische Vorschriften als Quellen nutzte. Später habe ich anderen Labormitarbeitern diese Methodik beigebracht.
Gleichzeitig bereitete ich meine Doktorarbeit vor, die ich erfolgreich verteidigte. Als ich bereits Doktorand war, gelang es mir, einen großen Forschungsstipendium von der Russischen Stiftung für fundamentale Forschung (RFBR) zu erhalten. Zur selben Zeit wurde ich an die Universität als Dozent mit einem Anteil von 0,3 eingeladen. Ich arbeitete an dem Stipendium, entwickelte Studienpläne und Lehrmaterialien für die Universität, veröffentlichte wissenschaftliche Artikel, hielt Vorlesungen, leitete Praktika und entwickelte Prüfungen sowie Tests für das elektronische Bildungssystem. Das Unterrichten machte mir sehr viel Spaß, aber leider endete mein Vertrag und meine Karriere als Universitätsangestellte ebenfalls.
Warum? Einerseits wollte ich meinen Weg in die Wissenschaft fortsetzen, beispielsweise als Dozentin arbeiten. Das Problem war, dass der Vertrag befristet war und ich mich an der Hochschule nicht festsetzen konnte – einen neuen Vertrag leider nicht angeboten bekam.
Damals habe ich das Unternehmen verlassen, da ich entschied, dass ich etwas ändern musste. Mein ganzes Leben als Ingenieurin im Labor verbringen zu wollen, machte mir nicht viel Spaß. Es gab einfach keine Möglichkeiten, mich beruflich weiterzuentwickeln. Das Unternehmen war klein, sodass über Karrierechancen nicht zu sprechen war. Zu den fehlenden Aufstiegsmöglichkeiten kommen ein geringes Gehalt, eine ungünstige Lage des Unternehmens und die erhöhte Unfallgefahr in der Produktion. So ergab sich ein ganzes Komplex von Problemen, den ich einfach durchtrennen musste, wie den gordischen Knoten – das bedeutet: kündigen.
Nach meiner Kündigung habe ich mich selbstständig gemacht. Dabei habe ich Projekte in der Radiotechnik, Elektrotechnik und Akustik entwickelt. Insbesondere habe ich parabolische Mikrowellenantennen entworfen und eine gedämpfte akustische Kammer für die Untersuchung von Mikrofonparametern entwickelt. Es gab viele Aufträge, aber ich wollte mehr. Eines Tages hatte ich den Wunsch, meine Fähigkeiten als Programmierer auszuprobieren.
Neue Ausbildung und Freelancing
Eines Tages stieß ich auf eine Werbung für die Kurse von GeekBrains und entschied mich, es auszuprobieren. Zuerst besuchte ich den Kurs 'Grundlagen der Programmierung'. Ich wollte mehr, also habe ich auch die Kurse 'Webentwicklung' belegt. Das war erst der Anfang: Ich erlernte HTML/CSS, HTML5/CSS3 und JavaScript, bevor ich mit dem Studium von Java in den Kursen '' begann. Die Ausbildung war eine große Herausforderung für mich — nicht weil der Kurs schwierig war, sondern weil ich oft mit einem Kind auf dem Arm lernen musste.
Warum gerade Java? Immer wieder habe ich gelesen und gehört, dass es eine universelle Sprache ist, die beispielsweise in der Webentwicklung eingesetzt werden kann. Zudem habe ich gelesen, dass man mit Java zu jeder anderen Sprache wechseln kann, wenn dies nötig ist. Das stellte sich als wahr heraus: Ich habe Code in C++ geschrieben, und es funktionierte, obwohl ich nicht sehr tief in die Syntax eingetaucht bin. Dasselbe galt für Python, in dem ich einen kleinen Webseitenparser geschrieben habe.

Manchmal musste ich so arbeiten — das Kind in die Tragehilfe setzen, ein Spielzeug geben und hoffen, dass das ausreicht, um einen weiteren Auftrag zu erledigen.
Sobald ich ein gewisses Wissen und Programmiererfahrung hatte, begann ich, Aufträge im Freelancing auszuführen. So schrieb ich eine Anwendung zur Verwaltung persönlicher Finanzen und auf Bestellung einen Texteditor. Der Editor ist einfach, hat einige grundlegende Funktionen zur Textformatierung, aber erfüllt seine Aufgabe. Darüber hinaus habe ich Aufgaben zur Textverarbeitung gelöst und mich mit dem Layouten von Webseiten beschäftigt.
Ich möchte betonen, dass das Lernen von Programmierung meine Möglichkeiten und meinen Horizont insgesamt erweitert hat: Ich kann nicht nur Auftragsprogramme schreiben, sondern arbeite auch an Projekten für mich selbst. Zum Beispiel habe ich ein kleines, aber nützliches Programm erstellt, das Ihnen hilft herauszufinden, ob jemand Ihre Wikipedia-Artikel bearbeitet. Das Programm analysiert die Seite mit dem Artikel, findet das Datum der letzten Änderung und informiert Sie, wenn dieses Datum nicht mit dem Datum übereinstimmt, an dem Sie Ihren Artikel zuletzt bearbeitet haben. Außerdem habe ich ein Programm zur automatischen Berechnung der Kosten für eine so spezifische Dienstleistung wie Arbeitskraft geschrieben. Die grafische Benutzeroberfläche des Programms wurde mit der JavaFX-Bibliothek erstellt. Ich habe natürlich ein Lehrbuch verwendet, aber den Algorithmus selbst entwickelt, wobei ich Prinzipien der objektorientierten Programmierung (OOP) und das Entwurfsmuster MVC verwendet habe.
Freelancing ist gut, aber ein Büro ist besser
Insgesamt hat mir das Freelancing gefallen – schließlich kann man verdienen, ohne das Haus zu verlassen. Doch hier liegt das Problem in der Anzahl der Aufträge. Wenn es viele Aufträge gibt, läuft das mit dem Geld gut, aber es gibt auch dringende Projekte, bei denen man bis spät in die Nacht im Eiltempo arbeiten muss. Wenn es wenige Auftraggeber gibt, spürt man den Geldbedarf. Die Hauptnachteile des Freelancens sind der unregelmäßige Arbeitszeitrahmen und das schwankende Einkommensniveau. All das hat natürlich Auswirkungen auf die Lebensqualität und den allgemeinen psychischen Zustand.
Es kam das Verständnis, dass eine offizielle Anstellung das ist, was helfen wird, die genannten Probleme zu lösen. Ich begann, nach Stellenangeboten auf spezialisierten Websites zu suchen, entwickelte einen guten Lebenslauf (danke an die Lehrer – ich habe oft mit ihnen darüber beraten, was im Lebenslauf angegeben werden sollte und was besser im persönlichen Gespräch mit potenziellen Arbeitgebern erwähnt werden sollte). Während der Suche habe ich Testaufgaben bearbeitet, einige waren recht anspruchsvoll. Die Ergebnisse fügte ich meinem Portfolio hinzu, das schließlich ziemlich umfangreich geworden ist.
Am Ende habe ich es geschafft, als Tester in einem Unternehmen zu arbeiten, das medizinische Informationssysteme zur Automatisierung des Dokumentenflusses in medizinischen Einrichtungen entwickelt. Bei der Jobsuche halfen mir mein Hochschulabschluss in „biomedizinischer Technik“ sowie Kenntnisse und Erfahrungen in der Softwareentwicklung. Ich wurde zu einem Vorstellungsgespräch eingeladen und habe schließlich die Stelle bekommen.
Jetzt besteht meine Hauptaufgabe darin, die von unseren Programmierern entwickelten Anwendungen auf ihre Robustheit zu testen. Wenn die Software den Test nicht besteht, muss sie nachgebessert werden. Darüber hinaus überprüfe ich Meldungen von Benutzern des Systems in meinem Unternehmen. Bei der Lösung verschiedener Probleme arbeitet ein ganzes Team, und ich bin ein Teil davon. Die von unserem Unternehmen entwickelte Softwareplattform ist in Krankenhäusern und Kliniken implementiert. Wenn Schwierigkeiten auftreten, senden die Benutzer Anfragen zur Problemlösung. Diese Anfragen bearbeiten wir. Manchmal wähle ich selbst ein Problem aus, an dem ich arbeiten möchte, manchmal bespreche ich die Auswahl der Aufgaben mit erfahrenen Kollegen.
Sobald die Aufgabe festgelegt ist, beginne ich mit der Arbeit. Um das Problem zu lösen, kläre ich die Ursache des Fehlers (denn es besteht immer die Möglichkeit, dass der menschliche Faktor verantwortlich ist). Nachdem ich alle Details beim Kunden abgeklärt habe, erstelle ich ein technisches Lastenheft für den Programmierer. Sobald die Komponente oder das Modul bereit ist, teste ich sie und integriere sie in das System des Kunden.
Leider müssen die meisten Tests manuell durchgeführt werden, da die Einführung von Automatisierung ein komplexer Geschäftsprozess ist, der eine solide Begründung und sorgfältige Vorbereitung erfordert. Dennoch habe ich einige Automatisierungstools kennengelernt. Zum Beispiel die JUnit-Bibliothek zum Testen eines Blocks über API. Außerdem gibt es das Twin-Framework von ebayopensource, das es ermöglicht, Skripte zu schreiben, die Benutzeraktionen nachahmen, sehr ähnlich wie Selenium, das im Web verwendet wird. Zudem habe ich das Cucumber-Framework erlernt.
Mein Einkommen an meinem neuen Arbeitsplatz hat sich im Vergleich zur Freiberuflichkeit verdoppelt – hauptsächlich, weil ich jetzt Vollzeit arbeite. Übrigens liegt laut den Statistiken von hh.ru und anderen Ressourcen das Gehalt eines Entwicklers in Taganrog bei 40.000 bis 70.000 Rubel. Insgesamt entsprechen diese Daten der Realität.
Der Arbeitsplatz ist mit allem Notwendigen ausgestattet, das Büro ist geräumig, es gibt viele Fenster und immer frische Luft. Außerdem gibt es eine Küche, eine Kaffeemaschine und natürlich Kekse! Das Team ist ebenfalls super, es gibt diesbezüglich keine negativen Punkte. Gute Arbeit, tolle Kollegen – was braucht ein Software-Tester mehr für sein Glück?
Ich möchte besonders hervorheben, dass das Büro des Unternehmens in Taganrog liegt, meiner Heimatstadt. Hier gibt es viele IT-Unternehmen, sodass es Möglichkeiten gibt, sich zu entfalten. Bei Bedarf kann ich nach Rostow ziehen – dort gibt es mehr Möglichkeiten, aber einen Umzug plane ich momentan nicht.
Wie geht es weiter?
Bisher bin ich mit dem, was ich habe, zufrieden. Aber ich habe nicht vor, hier zu stoppen – deshalb lerne ich weiter. Ich habe einen Kurs über 'JavaScript. Level 2' in Aussicht, den ich beginnen werde, sobald ich mehr Zeit habe. Regelmäßig wiederhole ich bereits durchgeführte Materialien und sehe mir Vorträge und Webinare an. Zusätzlich nehme ich am Mentoring-Programm von GeekBrains teil. So haben Absolventen, die ihre Kurse erfolgreich abgeschlossen und ihre Hausaufgaben abgegeben haben, die Möglichkeit, Mentor für andere Lernende zu sein. Der Mentor beantwortet Fragen und hilft bei den Hausaufgaben. Für mich ist das auch eine Wiederholung und Festigung des gelernten Stoffes. In meiner Freizeit löse ich, wann immer ich kann, Aufgaben von Seiten wie ,,.
Ich arbeite auch an einem Kurs zur Android-Entwicklung, der von Dozenten der ITMO angeboten wird. Diese Kurse sind kostenlos, und bei Bedarf kann man eine kostenpflichtige Prüfung ablegen. Ich möchte hervorheben, dass das Team der ITMO weltweit führend bei Programmierwettbewerben ist.
Einige Tipps für diejenigen, die sich für Programmierung interessieren
Mit etwas Erfahrung in der Entwicklung möchte ich denen, die eine Karriere in der IT planen, raten, nicht kopfüber ins kalte Wasser zu springen. Um ein guter Fachmann zu werden, muss man für sein Gebiet brennen. Daher sollte man den Bereich wählen, der einem wirklich gefällt. Glücklicherweise gibt es heute online eine Menge Erfahrungsberichte und Beschreibungen zu allen Arten von Entwicklung, Programmiersprachen oder Frameworks.
Man sollte auch auf einen ständigen Lernprozess vorbereitet sein. Ein Programmierer darf nicht aufhören – das wäre professioneller Selbstmord, nicht physisch, sondern karrieretechnisch. Wenn Sie dazu bereit sind – dann nur zu, warum nicht?
Quelle: habr.com
