Showing posts with label education. Show all posts
Showing posts with label education. Show all posts

02 November 2010

Project learning and Book learning smackdown.

During my carreer as a developer I came to realize the learning benefits one gets from doing projects, e.g. solving real life project and the benefits one gets from applying structured learning practices when learning a topic.
Let me explain how I learn first.
Generally once or twice a year I make a sorted list of technologies or topics I'm interested in learning. The topics are sorted by priority and how hard are they to learn. And then I start learning those technologies by moving from he the first item on the list to the last.
When I've picked up a technology to learn I usually by a book or two about it and then I start reading the book while sitting on my computer and working all code examples. This takes a lot of time since I work full time and also have a family but it gives me hand on experience with all aspects of a technology. Unfortunatelly this only gives me some experience, not true proficiency. True proficiency comes form working six months or more in a technology solving real life problems and learning how the technology works in the field, what are its problems and what are the best patters for its utilization.
Projects are really good at being proficient with common tasks in a technology, but do not delve deep in all use cases and technological aspectes of a specific software solution being applied. In some cases I relied only on my project learning to get a grasp on a technology and came completely stack when faced with something new and different for which I didn't have the necessary theoretical background which I would had if I took the time to learn the technology properly.
With book learning I get a real good foundation in a technology but lots of it I don't get to use during the technology life time, so the learning effort is kinda wasted since I don't get to use directly that knowledge practically. On the other side the wide knowledge base usually gets me pretty fast out of tight spots others find impossible to surpass.
In my opinion in order to be a good sofware developer one must do both types of learning :
  • Project learning , learning a technology by doing a project in it.
  • Book learning, learning a technology by following a structured learning mechanism such as a book or reference manual.
The real trick is to find a balance between both.

29 September 2010

I'm too old for this

I worry to much I'm going to wash out due to my age. I'm currently, at the glorious time of writing this post twenty nine years old and by the Lords grace I'm not a year older. And I worry I'm to old for this job. This makes me really unhappy since I have a small boy and I wonder how I'm going to provide for him since I'm no good at anything else (well I'm mediocre at a lots of things, but that is nor here nor there so we are not going event to discuss it) and this is all I have for now.
I don't know a lot of developers older then me, a few older then forty and none older then fifty. I really do not know what is my future career plan. I generally planned to gradually move to an architecture design position, since I'm naturally inclined to it and its not a development heavy thing. As I grow older, and as people grow older, we cannot learn as easily and as much as we could before. New technologies emerge and if you want to stay in this job  you need to spend extra time learning them at your own. But later I just can't mange to force my self to find the computer time for it. Sure I read books and blogs, and pay really carefully to code examples for technologies I'm intereseted. Curretnly I'm reading WPF 4 Unleashed by Adam Nathan and Patterns of Enterprise Application Architecture by Martin Folwer, plus I've read the entire MongoDB on-line documentation. But reading is not enough, you got to feel the code bellow your fingers. You just got to. And I really don't to much.
During my holidays I was to washed out to do anything and I told my self its OK you need to rest. But when I got back to work it continued. Sure I started some small coding on the side for learning purpose, I started reading books and blogs and watching presentations but thats just not enough without coding.
What is going on with me you wander. I think a description of my life after work is in order. When I'm finished working I'm with my family helping with the kid, doing house chores the whole nine yards. I put the kid to the bed and around ten o'clock in the evening I'm done with everything. I then go to eat my dinner (yeah I know its kinda late for that, but thats life) take a shower and I'm free to do as I like. I so want to do some coding but when I just think of sitting in from of my computer, my internal will power just crumbles. So I just watch a TV show or read a book. Very depressing, and very unhappy like for me. And then I start to wonder, this is my age doing this to me. Before I didn't have problems with this. Before I could do this all night old. I'm twentynine years old and I can't muster the will power to do this everynight, whats going to happen in ten or twenty years. How I'm going to learn Java or Erlang, or any other technology I'm going to need?
I just don't know and I'm really not happy about it.

15 September 2010

What should I learn next

My wife is a real help to me. Her current contribution is her opinion about my learning schedule for the next six months.
I laid down some choices, what issues are concerning me about each choice and in what order I would like to learn them.
The candidates were:

  1. Oracle

  2. MongoDb

  3. WPF 4


The winners were WPF 4 and MongoDB. WPF 4 will became my new build, virtual machine startup reading and MongoDB will became my evening exercises technology.

01 September 2010

Oh, my learning muse

I didn't write in four months now. It didn't seem to matter, nothing did which was related to my work. What happened to me?
Well, I've been pushing my self for the last three years very hard. Learning, working and applying my self in order to grow, learn and advance as a software engineer. And then I crashed, emotionally and physically. I become cranky , tired and frustrated.
I started then working from home, so I didn't have to drive for two hours a day on really low grade roads. I saw more of my family, and I was more rested.
One thing led to another, I started to shift my priorities to my son and wife. I started spending more time with them, going out to play by the sea, watching movies reading books, going out. Just living my life.
What was not right, was the nagging feeling that something was not right. A sick rotten feeling that I was leaving out something vital and important to me. My learning and education. My personal growth as a professional.
It got to the point that I felt my brain rot from not use. And I didn't like it. So I started learning again, "Patterns of Enterprise Application Architecture" by Martin Fowler, and "WPF Unleashed 4" by Adam Nathan. The former as my regular reading and the latter as my computer time in the evening and weekends reading.
I feel more right now. I guess. I don't spend as much time at the computer cranking code and learning new stuff as I would like.
Every time I can sit at my machine and learn , it seems it is ten in the evening and I'm to tired, my head hurts and I just want to unwind. It is really hard to keep up.

25 August 2009

Sharing your knowledge

Why are developers, and people in general , so prone to entropy? Most of the software developers I know are really quick to throw aways good engineering practices in favor of writing more code. And use the same code writing exercise as an excuse of not doing those practices in the first place.
I have to much work to do! See, how many bugs I have to fix! What do I get from writing all these down, nobody will read that! Testing is stupid, I will be the only one doing it , everyone else doesn't do it!
Oh , how many such sentences I've heard from everyone I talked to. And the energy I spent correcting each and different attitude. Ah! And then to see them fall back to their evil no engineering ways, practically makes me wonder why do I try.
OK, I try , because I really want to teach others what I know and think that should be a practice for all experienced developers, only this way our profession will grow and evolve. I do not gain anything by not sharing and teaching others.
What are the benefits of sharing (for example with your team mates):

  • You can shuffle boring and uninteresting work to them, while you focus on more challenging stuff


  • You can discuss problems with someone who understands the topic , and possibly made some learning on their own


  • You learn by teaching


  • People around you will write code with greater quality


Teaching others , or sharing knowledge , has its drawbacks :

  • Time spent teaching others is not time spent on improving you

  • Teaching others (in my experience) often diminishes your knowledge in the eyes of others , since for them is so easily gained

  • Teaching is a strenuous and continuous process with unknown results (if you want to see big bangs for you bucks quickly, better be ready for disappointment)


And the greatest truth of all: you can't force people to really learn and implement that they are not interested in. Especially if you do not a rifle on their heads.

10 July 2009

14th SQL/DEV User Group Meeting in Rijeka Review

I must say it was an interesting trip. Me and my team went to Rijeka yesterday to attend the 14th local SQL/DEV User Group Meeting. We took a company van and proceeded along the eastern Istrian coast to Rijeka. It took us two hours due to extensive working on the repair of the road and hordes of tourists enjoining the scenery.
We arrived an hour latter than planned.
The meeting was held at the "Naval University" of Rijeka. There were around fifteen to twenty people mostly from three to four companies including our own.
The entire event had some good and bad sides. I'll categorize them .

The Good

Interesting and friendly crowd. We all were welcomed there warmly, and the fact that we were the new faces there made no difference. The MVC talk was interesting, rich with data and the speaker was well informed and mostly good. I met Aleksandar Zgonjan of Pro3x there. After the presentation we all moved to a bar near the train station and had a drink there. I met several persons there including Jasmin Ćelić the president of the local programmers guild. We discussed the possibility of met organizing a presentation there.

The Bad

The technical equipment did't work. The projector malfunctioned or it didn't work with windows. I don't know. We started the presentation one hour late when Hrvoje Hudoletnjak brought a new one from work. Because of the that the IronRuby and Ruby on Rails presentation was not held , which was a shame for me because I was interested in it.

Conclusion

All in all it was a good day. Rijeka is a fantastic city, full of life and history. The most fascinating thing was the torpedo exposed in the courtyard of the university. A historical note : the first torpedo was developed in 1905 here in Rijeka in the factory "Torpedo". I touched the damned machine , examined it head to to toe and event fearfully knokced on its point a few times.

09 July 2009

14th SQL/DEV User Group Meeting in Rijeka

I'm thirty minutes away from a trip the fourteenth SQL/DEV User Group in Rijeka. This time its a corporate spornsored trip. Five other colleagues are going with me. We managed to gather up a big van with air conditioning and, event , a corporate sponsored meal. Nice.

The SQL/DEV user group meeting will be organized in the Nautical University of Rijeka and will be composed of two lectures :

  • ASP.NET MVC development practices

  • RubyOnRails, Ruby and IronRuby for .NET developers


And of course, after the presentations a gathering will be organized with drinks and snacks with all the attendees which will be an opportunity to meet new people and learn or discuss about interesting ideas and technologies.
I really think these type meetups are important for a developers advancement, since you can learn and hear about development use cases which would normally be hidden from you.
I started thinking about organizing a presentation for the next OpenCoffe meeting. Something short, maybe half and hour long, and interesting. Practical, maybe event daring in the specific way I conduct all my presentations ;)
I haven't decided anything yet. I was wondering to do something on the following themes:

  • Web UI testing and automation

  • Web portal development process

  • Drupal theme development

  • PHP Unit testing

  • Building an MVC framework in PHP.

  • Workflow Foundation

  • ASP.NET Data binding controls



Don't know. More that I think about it I realize that I know squat. Maybe I should just cover and listen to wiser heads talking.

03 July 2009

OpenCoffee Club Pula, first Meeting

On Saturday 7th in Pula will be held the first Open Coffee meeting for web developer and other related ilk. The meeting will be held at 19:00 hours in the coffebar "Cvajner".
I'm really excited to attend this meeting. I see it as an opportunity to see and talk with people with the same interest in development technologies who are not necessary work related.
A google group for the meeting was created here for those of you who would like more information.

03 November 2008

Learning the devils way : killing the interest first

I grow tired of the endless stream of SQL going into my head on daily bases. It all looks the same, but with subtle differences. I'm just no so interested to learn what different flavors of create table exist out there. But I must. But I so needed to advance my self career wise.
So I soldier on. Learning T-SQL every day, one hour a day. My personal learning time. And during my project time I'm learning PL/SQL. Of course my project time doesn't allow me much time to learn all that I need about the damned Oracle SQL dialect, so I learn during my break, during my free time at home in the evenings experimenting on the Oracle 10g EX database I've installed on my Ubuntu machine for just that purpose.
But it tires me so. I would rather learn Jquery or Dojo, or read some new PHP book (like PHP in Action from Manning), or continue my studies of Django or learn a new cool language like Erlang or OCaml. But not. I'm stuck with T-SQL and PL/SQL. It is my choice. One that I had to make.

21 August 2008

I wanna learn Java

I wanna learn Java. I want it so bad. Well not really that bad , but I was always interested in working with this technology. But I never got around to learn it.
See I had this career development plan in my head. I wasn't about where or what I would be doing, instead it was about what technologies I would use and when. I started my professional career with PHP, then I've migrated to Python and now too C# .net, which was something I didn't plan for. I've always had a fondness for open source cross platform technologies. Too me, locking your self to a specific operating system is not what a modern developer should do. With so many options out there , too me, what makes the most sense is to develop in technology that is OS agnostic, instead to lock your self in a proprietary technology and thus reducing your employment chances in case of loosing your job. Is good to be flexible.
So why Java? Why not be happy with .NET, is the same thing only different package? Too me this is a philosophical question. Do I want to make my money locking my self to a company that I really do not admire, or do I want to earn my bread working in something that is open, portable and positive?
Well to me today the only logical choice is Java. And in couple of years I want to be known as a Java developer.