Complexity and Dealing with it in Software Development

If you’re programming, you most likely know that problem. You try to solve a problem, and deal with some sort of library, framework or concept you haven’t used before. Inevitably, you fail to get it working right of the spot and get frustrated. This is where people in my field are every day, as we’re using new technologies, frameworks and concepts all the time.

701 - Puzzle - Seamless Pattern
There of course isn’t a precise way to solve such problems. But the only sure way to approach this is to make sure you grasp the underlying concepts. If you’re building a web application with some client side jQuery goodies loading stuff from your struts2-server, the first step isn’t to learn about Struts2 or jQuery. Make first sure you understand:

  • how a HTTP-Request works
  • what GET and POST means
  • that HTTP is stateless and what that means to your application
  • what JavaScript is and where & how it is interpreted
  • what AJAX is besides a nice word you heard often
  • how a server works
  • what request and response are
  • what a servlet is

Connect all the information

After you have understood the basics, you can go on and understand the higher level stuff. This is what most of us learns while attending a university, but you never have understood everything and you’ll never stop hitting new fancy acronyms and technologies if you’re into programming. But for every acronym you see and that you don’t understand, try to make sure you at least read the Wikipedia page before you try to do some fancy coding by copypasting things you found via Google – because if you don’t understand what you’re using just now, you implemented a black box that might or might not work and that you didn’t learn anything about.

When you approach new concepts, frameworks and technology in that way, you can build up a solid foundation of knowledge that get even more solid every time you learn another new technology that bases on stuff you already know, assuring to yourself that what you learned before is correct. Fast and dirty is slower in the long run. And as such, you shouldn’t be concerned that something takes some time to understand – because when you don’t really understand it, then you won’t be able to fix the issues that will occur anyways. And it’s a long way from zeroes and ones to AJAX.

Creative Commons License photo credit: Patrick Hoesly

What after studying computer science?

Its long till you heard from me as I was finishing on my Diploma till now. I finally did it. Well, spelling correction and some reader response still needs to be incorporated, but after all its just finished.

It about an online-rich-text-editor with support for RDFa (as lately support was announced by Google for RDFa, it should be pretty interesting for some out there). This means that I took WYMeditor, put it into a blogging platform, connected it with Freebase, added some RDF-Parsing and there you go with annotating your HTML sourcecode with semantic RDFa-markup.

You can add resources from Freebase without knowing anything about RDF, RDFa or Ontologies, you can use some static concepts like the Google review-stuff and some FOAF-concepts and you can even generate RDF-triples, that means semantic statments that machines can interpret. I mainly focussed on usability as I imaginged that most of the worlds documents don’t get created by too technical-adept people but others who’s knowlegde focusses on another area – and who use rich-text-editors to place content online.

I also had a pretty good idea for a sematic twitter service that could revolutionize the semantic web – but as I really need some experience in the free enterprise world, I can’t really start a startup now … or can I? Well, there are more buisiness ideas in my head, so maybe someone else should do the sematic twitter stuff. Well, I’ll maybe just put it online after its approved, we’ll see.

But what now? Another three year of science? No, after all, I need a job now. As I’d like to stay in Oldenburg (Germany, near Bremen), I need something in about half an hour range from here. I like web-technology, am into Java because its the “educational standard language”, but would really like to get to know some more. I worked with Struts2, JavaScript, jQuery, XML, JSON, AJAX, PHP, RDF, OWL, HTML, CSS, SVN, … I’m interested in iPhone-Applications, Social Media, Scrum Project-Management, Usability Engineering, Semantic Web (+more stuff) and would love to find a job to learn more and do something producive with my skills.

Some big companies still don’t want new people as the financial crisis makes bureocrats feel more important now, and some just don’t think they should get to know you if you didn’t send a copy of your diploma with the letter of application – and they don’t really read the letter, as I clearly say that I need to wait about two more month till I get it.

Well, its not that I don’t know what to do and learn in my free time. But where shall I begin? Learning .NET and Visual Studio? Delving into Flash or Silverlight? Try to make an iPhone App (got some useful ideas for that)? Work on business ideas? Finish reading the latest Design Patterns- or Scrum-book? Try out Hibernate? Blog some more? Many questions, no answers. Perhaps I’ll just write my next dozen of application-letters. After all I’ll need some money to buy a nice server machine ;-)

Increasing Speed: Evolution of Lifetime

We are living in exponential times. Science works much faster than ever. New technology that helps us managing our life in a more comfortable and quicker way gets developed every day. The world population cooperates over the internet. People are confronted with more and more information every day. Social bookmaring services and twitter gives us 1000 interesting links to watch every day. This might either mean information overload or adaption of the brain. Will we cope this stream of information and be hyperintelligent or will we just waste our time watching useless information making us inproductive?

Just in case you didn’t see this video before, take the 5 minutes of time and watch it. Its really impressive.


Did You Know? from Amybeth on Vimeo.

Reblog this post [with Zemanta]