It’s never too late to learn programming and become a developer

How often do you hear the words that it is too late for something, that old trees are not replanting? And how often do you see a smile of pity on the faces of your friends, when you think loudly about changing not only work but also profession at the age of 40? I often met with such reactions when I told my friends that I was going to learn programming and become a developer. Today, many of them congratulate me and admit that they did not believe in my success.

Yes, at the age of 42, I decided to make one of my childhood dreams and learn to program, and maybe become a developer. And even though my programming adventure is just beginning (the journey is the reward), I can already boast about Socialite, my first iOS application that I created together with my friends from Apparent Software. I will start from the beginning.

Krystian Kozerawski
Krystian

My name is Krystian Kozerawski and for the last 10 years I was one of the most popular Polish bloggers writing about Apple. When in 2008 I started my blog and told everyone that I wanted to live off of it, many thought I was crazy. I have created my own brand in the Polish blogosphere with my hard everyday work and for the past 10 years my passion has been my source of income.

A few years ago, however, I noticed the first symptoms of burnout. Being in my forties I was wondering what career path and passion to choose. Having at home a few Mac computers, iPads and iPhones and experience in terms of a critical look at applications (which I have been reviewing for many years), the choice seemed quite simple  – I decided to become a programmer.

My Childhood Dream

Programming was one of my unfulfilled childhood dreams. I started my adventure with computers at a time when Poland was behind so called The Iron Curtain, and these machines were smuggled into the country. At that time, I attended a computer club where up to ten children where gathered around one ZX Spectrum or Commodore 64. As you probably guessed, little time, which each of us had at our disposal, was devoted to much more attractive games than to learn programming. Although I learned a few basic instructions then, but my use of the programming language was limited to the load instructions only.

Symptoms of burnout as a blogger increased, which pushed me towards making a decision. Finally, in January 2016, I started learning Swift from the first textbook I bought. From that time on, I devoted a daily of one to three hours a day to learning programming. I must admit that the remote work from home and the unlimited work time of a blogger helped me a lot. I had time to learn, to think out, even to take a walk in the woods to clear my mind and put the things I had learnt in order.

Learning programming language without any real experience reminds me a work of detective who collect the evidence that at the beginning seems not to be connected. During first year of learning Swift language I sometimes didn’t understand the obvious things, and I had to take them as they were. Then after a few weeks, and sometimes even months, I learned something that made concepts previously hard to comprehend so obvious or even trivial. I was buying other digital textbooks and going through each learning project they provided. 

Of course learning programming language is a never ending story, so I am still trying to learn and read new textbooks on Swift. In one of them I read the advice to share the acquired knowledge also at the beginning of one’s programming adventure. It so happened that a few years earlier, my 4.5 year old son, who began reading and writing on his birthday, executed a simple program, which I wrote down on a piece of paper.F

Learning and Teaching Programming

While playing with Lego blocks, I accidentally began to teach him programming. I put in a straight line square blocks in different colours, and one separate — red — set them in front of them. I explained to my son that this red brick is a robot that he has to collect — by sticking to himself — all the other red blocks in the line I have arranged. Quickly on the page I wrote him a simple instruction containing several commands and a simple loop and conditional instructiocns:

  1. Check what brick is under you
  2. If it is a red block, attach it underneath you, otherwise do not do anything
  3. Move forward
  4. Start from the beginning

Lego blocks program

Well, this was not an impressive code, but I was still surprised when my 4.5 year old son, who had learned to read and write a few months earlier, did the job without any problems. Later, I created a few more such programs.

Then came lessons on the computer, and more specifically a simple programming course for children on the Code.org website in which the robot BB-8 from Star Wars is programmed. Finally, with the beta of iOS 10, the Swift Playgrounds app appeared, which my older son started to play with.

A few months earlier, in the first school year, I had the opportunity to give a full-day class in a class of my son, which showed children holograms, simple virtual reality in Google Cardboard glasses and Sphero controlled and programmable toys. The reception on the part of children was phenomenal. Actually, they did not want to let me out of the classroom. Remembering this, I thought that since I teach my son the basics of programming in Swift Playgrounds, I might as well do it voluntary (pro bono) in his class.

My son explains simple programming concepts to his classmates
My son explains simple programming concepts to his classmates

Although children have lessons in so-called computer science, but it is really simple and quite reproductive computer skills, which of course is also needed (even my son, who only in the classroom has contact with Windows). However, I think that most of them do quite well with computers, smartphones and tablets, and what they should learn immediately after gaining reading and writing skills is the basics of programming. The programmer is still one of the most sought-after professionals on the market (tens of thousands of programmers are wanted on the European market).

I shared the idea with other parents of kids from my older son’s class, I have also shared the idea with the teacher and I came back to him at the first September meeting, but it took two more months to get the permission of the school management and write a simple program for these lessons, although I do not conceal that, apart from the very general framework, a lot of my learning is improvising and things invented ad hoc, a few hours before or during classes.

I teach children at school once a week.

Becoming a professional software developer

For the last two years — as I wrote above — I have been learning programming myself from textbooks usually one to three hours a day. Finally, in September last year, I decided to check how much I know. As a 43 year old I came to an internship in one of the software houses in my home town. And a few months later my friend Jacob Gorban of Apparent Software said that they are looking for a Junior Swift Developer. Years ago me and Jacob have met at Macworld in San Francisco. Jacob was one of exhibitors and I was a journalist. After the show we stayed in touch, for sharing the same passion about the music. And then it appeared that we share also the programming passion.

With a helping hand of Jacob who is obviously much more experienced developer I started my work on Socialite. And it is not only just an app. Since we all at Apparent Software share passion to the music (and a few of us are also musicians) from the very beginning I was thinking about Socialite as of the song of a band. Our common work, filled with our passion and pieces of our own personalities.

At Apparent Software we are based both in Canada (Winnipeg, Toronto), USA (Chicago) and Poland (city of Lodz) we knew we want to do something for our local communities. That is why you are going to find in Socialite sticker and frames packs that depict famous places in our own home towns. For me as a Pole very important is link between the place I live and the second biggest Polish city in the world – Chicago. You know that almost every Polish person in Poland has relatives in Chicago? And it is not just an urban legend. I do have them, and releasing feature pack for Polish community in the USA and especially in Chicago I am making a commitment to find them.

So here it is. Socialite, the effect of real commitment in making old dreams come true. There is never too late, and as long as you believe in yourself and there are people who want to share their own experiences and knowledge the impossible is nothing.

One of the pictures I created with Socialite

Educational articles on framing and matting

Are you interested in the history of picture frame? Or perhaps you need some tips for choosing the perfect frame for your art work? What are the main rules of framing the photo?
We are pleased to inform you that we have started publishing educational articles on framing and matting. Take a look at our Picture Framing Articles page.
Every month we will add articles with interesting facts about framing, as well as sharing tips to mount your artwork. Let us introduce our first article – Why a picture frame?

Why a picture frame?

A frame for a picture is like a beautiful dress for a woman. It serves to emphasize the important details, hide the disadvantages, and create a complete, perfect image. Many private owners and art galleries exhibit their paintings without frames, but this is a huge mistake. An unframed picture looks far less impressive than it could because the painting itself is rarely self-sufficient and lacks a complete form. In most cases the right framing is necessary to complete the image…
still_life_floweb

Starting without money? Check! Five times of 5!

Last week Kosta and I attended an unconference related to business, startups and also some things unrelated to the above. We’ve been to several interesting lectures and activities and in general had a lot of fun. The last one was about starting business without much money.

The lecturer, who also teaches at the university where the event took place, told how not every business should be built in the “start up” way, i.e. venture money, immediate multinational presence etc. He proposed several alternatives on “starting down” and then growing up as needed:

  1. Start to work on the business while on the day job.
  2. Make the office in your home instead of in an expensive “start-up” location
  3. Use Skype instead of phone/cell
  4. Team with your friend or family instead of hiring an external CEO on a high salary
  5. Use (cheap, if possible) freelancer instead of hiring employees

While he was listing it we were folding our fingers for each “check”. I checked all five:

  1. I worked on Apparent Software (on ImageFramer) for three years while on my day job before I decided to switch to full-time. Kosta is still part-time in Apparent Software.
  2. My home is my office and no changes are planned. Well, about once a week Kosta’s home is our office.
  3. We use Skype In and Skype Out to connect to customers all over the world.
  4. Kosta is my friend of about 15 years and this adds a lot to the fun and to the trust.
  5. We’ve successfully used freelancers for graphics, web development, video production, and even programming.

Of course, these advices are not rocket science and the fact that I followed them is just because the financials of the business required finding affordable solutions. Still, it was both amusing and reassuring. I feel we’re on the right track.

Stay tuned to some exciting news in May.

All the best,
Jacob.

DMG for distribution incompatibilty on Snow Leopard?

Do you use DMG to distribute your software for download?
Do you create it using a script, by creating a template DMG and then replacing its content upon release?

If you do, which I fully endorse, and you’ve created your template in Finder on Snow Leopard, read below.

In the last couple of days before the ininitial release of Cashculator to the public I’ve been struggling with the DMG creating process. I thought I’d already mastered it. After all, I’ve been already doing it with ImageFramer. So I prepared my template, copied the .DS_Store file from it (I used this process with ImageFramer) and script handled it all fine for me. I look at the final opened DMG and I see the following image (which is what I indended it to be):


Cashculator DMG background

Cashculator DMG background

I send it to the server and let my partner Kosta check it on his machine. He’s using Leopard and not the Snowy kind. He send me back the following image, which is far from what I thought it to be:


Cashculator DMG on Leopard

Cashculator DMG on Leopard

Not good. So I tried this way and that way. I even moved to another system, where I first create the DMG and use  the DMG itself as the template, without exracting .DS_Store first. Nothing helped on Leopard.

So we met and he brought the Leopard machine with him. I open the DMG, press Cmd-J and see that Finder thinks there’s no backgrond image and icon sizes are different.

After some research I came to the conclusion that DMGs created on Snow Leopard don’t show the same at all on Leopard. Frightened, I also tested my ImageFramer releases, which also sport a new background since the release of Snow Leopard. To my shock, it was also totally wrong on Leopard. That’s not how I wanted to convey the first impression of ImageFramer to potential customers.

The solution, of course, was to create the DMG on Leopard and use it as template instead. I ran the new template through my scripts and reopened the final DMG on Leopard to check. It was fine. Finally.

Today I did the same with ImageFramer‘s DMG. For some reason, the one from Leopard showed without background on my Snow Leopard machine. I only added the background again and saved the DMG. It worked fine on Leopard too.

That’s it. So, if you use a similar technique for creating DMG, check them on Leopard and on Snow Leopard before shipping to avoid later embarrassment.

NSConference – missing already

So I’m back from NSConference.

Wow, it was a much exciting experience for me, for several reasons. I’ve entered the Mac development arena about 3 years ago but I’ve never been to any developer conference. WWDC is too far and expensive for me. So when Scotty first announced about it I thought it’d be nice to get there. Fortunately, it worked out.

First I’d like to thank Scotty an Tim because I was probably one the most problematic of their visitors. I came to UK with my wife, so we couldn’t stay in the regular accommodations and I’ve continuously bothered them both about my issues with it and the banquet. They were both very helpful and kind with me.

The developer “crowd” was very interesting, coming from different countries. I’ve talked to people from Italy, Denmark, Switzerland, Germany and of course UK. There were people from other countries such as Finland, Spain, France. There were quite a bunch of iPhone developers and also people who wanted to become full-time Cocoa developers coming from other areas, such as Java or Ruby consulting.

The sessions were all well selected and on high level. The speakers were of the highest quality both knowing and entertaining. Matt Gemmell ’s talk about custom controls was helpful as I have created a couple custom controls myself for ImageFramer 3. Fraser ’s talk about integrating with Apple’s photo programs was also just what I needed since ImageFramer is a program for photographers as well and I don’t have any integration at this time.

Some other talks that I liked are Mike Lee’s Pimp my app sessions, which was both entertaining and helpful. I like these business and user experience related stuff and Mike’s a great speaker. After the conference I caught him for several questions and he was glad to discuss things.

Marcus Zarra talked about Core Data, Spotlight and Quicklook integration. He’s a good speaker and makes it all look really simple.

F-Script session was very interesting. Although I’ve looked at F-Script myself beforehand, Philippe Mougin excited the audience with its abilities and I sure learned quite a few things myself.

All other sessions were helpful and entertaining as well.

The night after the conference, laying in bed I couldn’t fall asleep and ideas floated into my mind how to make ImageFramer 3 better. The new knowledge and enthusiasm all fused into one and I’ve had quite a few helpful ideas. Yes, nerdy, I know, but sometimes good ideas about programming come at this time.

Huge thanks to Scotty, Tim and other people involved. I now wait for NSConference ‘10.

The only thing that I didn’t like were these British water taps. How in the world am I supposed to wash my hands this way? We’re in 21 century and it’s a new building. Can’t put the mixing faucets, for crying out loud!? I know, it’s the same in London and it’s some British thing but someone, please explain why it’s this way and how to use it effectively.

The most annoying thing in UK

(the photo above is from my hotel room in London)

I you just happen to want to see some of my photographs from the UK trip, take a look at: London and Oxford set on flickr. There might be more later as well.

Jacob (@apparentsoft)

Pin It on Pinterest