Starting a new life (career wise at least)!


___

Advanced Member
Joined
Jan 31, 2006
Messages
3,376
Yay! Just wanted to express my happiness here and share this with you guys.

Maybe some remember that I was working in the performing arts business, namely theatre. And probably, that I got the hell outta there after failing as a freelance artist and working with a horrible dipshit of a director, which has basically ruined my enthusiasm for the whole thing.

I have now finally gotten a step further with my reorientation. Since I am a huge nerd and computer/electronics enthusiast and always wanted to get into IT when I was a kid, this was my perspective now.

I got myself a microsoft MTA certification (lol what a ripoff), to qualify for an education funded by the German unemployment agency.

Before I'd start down this route, I wanted to get an internship and have a closer look at what work as a professional programmer actually encompasses and if I was up for it. Through a bit of luck I got an internship at a local company a friend of mine develops web applications at. Called him up to tell him that I am planning on getting into this and he just offered me to check it out.

I've now worked 4 weeks there, and they have now offered me a job! And they are encouraging me to go back to university to study computer-science while working there instead of an apprenticeship like the unemployment agency offered me (for the non-Germans, in Germany this actually exists... probably apprenticeship isn't quite the correct word though).

So yeah, I am now hacking python code and developing on their awesome web framework, deploying code on google app engine. And I am super in love with the job so far. Sooooo many things I don't understand yet about object oriented programming though, but I am eager to learn. Sitting 8 hours in a really nice open and modern office, surrounded by screens, being able and encouraged to use my own tools and computer setup... oh and all their stuff is open-source. Also they have their own building in an old warehouse where they just use the space as they like, we have a huge vegetable garden on the roof, where we have our lunch (at the moment mostly barbecue, also on the roof ^^), they brew their own beer (even have a license for it), organize art events in their basement and support the local quarter where I live in.

Hoping my streak of bad luck and not knowing how to pay the rent will now finally be over for good.

@sm0kew0n you are still getting a dragonbox voucher from me for all the commodore stuff!
 
Well done, enjoy the work!
Good thing you can study, programmers need to keep up with new developments in the IT community.
I switched jobs few months ago, still happy.
 
I'm happy for you, that sounds like a great work environment. Quitting out of a job that slowly kills you inside is a good move.
And once more I'm reminded how important networking is. We call this "Vitamin B" in German, for Beziehungen/connections.
Reminds me I have that date with the employment agency next week, been running on fumes for over a month financially. Oh well.
 
Wow, good luck. I have never managed to learn Python. I see Python code... not like a programming language, so congratulations that you chewed through it.

P.S. Not a programming language... says the being who everyday deals with proprietary, undocumented program description systems for computer simulations.
 
@PCXT haha I am not a python programmer by far. I can write some simple logic, copy and paste some methods and then get them integrated into our code. it's a good starting point for becoming a quality python coder but I am not there yet. The language annoys me a lot, while impressing me at the same time. I love trying things out in a REPL and making changes live. the whole type strict paradigm (while very smart) cost me a lot of time though. converting and encoding issues with different types of strings is just insanely annoying and feels super hacky (probably because I don't quite know yet what I am doing). I heard this is solved better in python 3 though.

Also getting into OOB is a rabbithole for me. Of course I have dabbled in it before, using APIs and such. But using a module/model based framework and then expanding it is very hard to grasp for me. Especially instancing objects and reading stuff from a database of objects.

Just right now I am writing a method to create an xml google product feed for a customer. That was pretty straight forward.
 
I started my programming with pseudocode/algorithms, then Pascal, then C++, then Perl. So for me, languages without strict typing require more thinking like "how function x would understand variable y". If you can work without it, it's really good.

Method of creating XML from page?
Most web sites abandon RSS today and I'm active RSS user in some sites, so I'm frequently doing such things in Perl. The URL of e.g. newest local classified ads list page, and RSS XML comes out, this is cron'ned and my e-mail client syncs RSS to the local file. Parsing HTML using Regex is quick, yet in Perl... there is a library for everything.

One more thing: If you need to quickly learn some programming language enough to write simple things, find some nice open source project you want to use and try to remove bugs from it. I did this with Java. It haven't changed my attitude to Java, but now I can program in it.
 
  • Like
Reactions: ___
Happy to hear you're in a good place man, congrats on your new career! New job sounds like an awesome workplace, too.
 
  • Like
Reactions: ___
@PCXT haha I am not a python programmer by far. I can write some simple logic, copy and paste some methods and then get them integrated into our code. it's a good starting point for becoming a quality python coder but I am not there yet. The language annoys me a lot, while impressing me at the same time. I love trying things out in a REPL and making changes live. the whole type strict paradigm (while very smart) cost me a lot of time though. converting and encoding issues with different types of strings is just insanely annoying and feels super hacky (probably because I don't quite know yet what I am doing). I heard this is solved better in python 3 though.

Python isn't a strongly typed language - it uses duck typing. However, python3's byte and string types and needing to encode/decode between them can be a little trying - I've even found one situation where I need to inline encode and decode a string before it'll work! I've found python2 to be a lot more forgiving as it doesn't have a bytes type, so you can do everything you can do with a python3 bytes object with a python2 string, as well as treating it as a string if you want.
 
  • Like
Reactions: ___
I don't know if a university computer science degree is necessarily the best way to prepare for most programming jobs

there is also fachhochschule, and IHG training which may be more applied and less theoretical
 
I don't know if a university computer science degree is necessarily the best way to prepare for most programming jobs

there is also fachhochschule, and IHG training which may be more applied and less theoretical
university is nice for learning a lot of theory, but yup, the code that i've seen there is beyond horrible (not the students' fault, there was no one teaching them how to write good code).
if you're into things like proving that a list gets shorter when removing an item from it, a Technische Universität is the place for you. if you want to actually remove items from lists and want a reason for doing so, look for a Fachhochschule (at least that's my experience; maybe your area is different).
 
university is nice for learning a lot of theory, but yup, the code that i've seen there is beyond horrible (not the students' fault, there was no one teaching them how to write good code).
if you're into things like proving that a list gets shorter when removing an item from it, a Technische Universität is the place for you. if you want to actually remove items from lists and want a reason for doing so, look for a Fachhochschule (at least that's my experience; maybe your area is different).

(Unless we are talking about UI code that is always horrible for nontrivial applications) I don't agree. Horrible code is definitely the students fault and - in my experience as a (former) teaching assistant - is almost always associated with having no grasp of semantics (at least of some kind of SOS). It is possible to have such an understanding intuitively without theory, but being capable of proving code correctness really helps. Actually doing it is not required, but at least having an idea of what kind of correctness is desired and how one can write code that is easily verifiable certainly is valuable. This is not to say that there are no bad teachers (with me possibly among them), but university requires students to finally start to grow up and take responsibility.

NB: my personal favorite piece of student code I had to grade was a factorial program using several nested loops over around 30 lines giving correct results for inputs 1, 2, and 3 and wrong results (including endless looping) for all other inputs. I suspect it was created following some evolutionary model, but the authoring group claimed that it was working in Turbo Pascal (the default excuse, because there were some slight semantic differences - but only concerning I/O - between Turbo Pascal and the BS2000 Pascal system).
 
Last edited:
Interesting discussion.
I'm at a Technische Hochschule (Fachhochschule) and have often asked myself the question whether I would get a better and deeper understanding of Informatics at a University or not.

How important do you think is it to go deeply into Maths and formally proven theoretical Informatics to become a good computer scientist?
We had Formal Languages this semester and in my oppinion I do understand what's necessary now but we did not prove everything.
Maths is also not that deep.
On the other hand we have learned in the first Semester Assembly and C and I know about stack, heap, pointer and what's important to be careful with.

In my opinion neither it superior but different.
If you want to be good you have to learn both sides anyways and that's what books and Youtube is there for ;)
 
@_jr_ i think they still could tell students that their code is bad, and give them hints on how to improve it. or at least send a mail with links to articles so they know that there is such a thing as clean code (and naming conventions!). on the other hand, code reviews get way more interesting if you have a "theorist" in your team :D and sure, theory is important, but personally, i don't give a damn about it if i don't even know what it's used for (which resulted in me failing maths a lot, because no one i asked could tell me a purpose for that stuff (fun fact though: i recently re-learned all those formulas because i actually needed them for some glsl code. just took me four years to find a use for them.)).
tbh going to that university was a personal screwup, and i should've looked closer at the stuff that's going on there, but hey, i learned a lot about personal preferences and what i definitely don't want to do later in life. there are lots of happy students there who get excited over abstract stuff they can take apart and put together again, but it's just not my cup of tea.

NB: my personal favorite piece of student code I had to grade was a factorial program using several nested loops over around 30 lines giving correct results for inputs 1, 2, and 3 and wrong results (including endless looping) for all other inputs. I suspect it was created following some evolutionary model, but the authoring group claimed that it was working in Turbo Pascal (the default excuse, because there were some slight semantic differences - but only concerning I/O - between Turbo Pascal and the BS2000 Pascal system).
wow :confused: how did you grade that one? :D
 
Yeah, supporting the students was the point of the course (which was an optional addition to the lecture; not sure whether these still exist today) and did work out fine for most of the participants (I failed in some cases, though - including the students with the example above; I'd say in the end the problem was not this particular program but missing curiosity).

IMO theory is not mandatory, but insight is, and theory is one possible way of gaining insight. There are accomplished programmers (like one of my brothers) that gained their insight differently and there is absolutely nothing wrong with that. But (IMO) clean semantics and compact mathematical notation make the theoretical approach quite easy. E.g. understanding the semantics of a potentially endless loop is one of the most difficult things in software (like in the factorial example) because most human brains are simply not wired for infinity. Theory provides concepts (like fixed points) and methods (like SOS) that allow common brains (like mine) to overcome these natural limitations. Even informal application of these methods leads to a proof strategy which is a valuable guide for the implementation (obviously without the formal proof, it might still be wrong, though).
 
Back
Top