Learning to code

by Hamilton Chapman


Like many others I have decided to try and learn to code. I've made a variety of attempts to get into programming in the past few years, but none of them have really stuck. Sure, information has gone in, and bits of it remain, but I would still struggle to build anything more complex than a simple maths tool.

I've flirted with C, C++, Objective-C, Java and Python, plus a few other 1 or 2 day flings with Ruby, Javascript and a few more. Having not had any formal computer science education and only a minuscule amount of specific programming tuition I find myself wondering whether it's me that's the problem, or my programming partner of any given moment.

My first foray into programming was into iOS development. Going into that with zero programming experience seemed not to be a problem at first. I was powering through tutorials and worked through a good few chapters of a book that I'd bought from Amazon based on some good ratings at the time. All was going well until one day I just could not complete any of the exercises at all. I was out of my depth and severely demoralised.

Why had I suddenly not been able to complete any of the exercises? In hindsight, it's probably because I'd jumped into learning Objective C and then iOS development without any prior programming experience, let alone Object Oriented Programming. As such, I had vague ideas about objects, classes, methods etc, but really didn't know any of the specifics. Add that to attempting to wrap my head around building an interface and I didn't stand a great chance. 

Attempt number two began with buying a Python book and working through that. I decided to work through page by page, methodically completing each exercise, analysing each example. That definitely worked better and I got further than I had done with attempt number one. I could start to see things coming together, but it was all a little too slow. Essentially I burnt out; I couldn't keep on powering through page after page of text. Perhaps if I'd had a project in mind that I could have begun working on then having that in sight could have kept me motivated. 

Next up was a return to iOS programming, or at least that was what I had in mind. I had heard good things about the Programming Methodology lectures from Stanford University on iTunes U so decided to give those a go. The language chosen for the course was Java and I never quite got into it. The lecturer, Mehran, was excellent, but it wasn't enough to keep me going. Another attempt, another case of some huffing and puffing but no real progress.

Attempt four. I convinced myself that learning C would be the best place to finally kick my learning into gear. What better place to start than with something as popular as C, albeit not so much anymore. Again, the all too familiar pattern of strolling through all the basics of the language and then finding a whole section of exercises that seemed completely alien threw me off. 

Next stop, Python. Again. This time via Udacity and CS101. I managed to get through this pretty quickly and without many problems. However, moving on to the Web Applications course taught by Reddit co-founder Steve Huffman proved to be a big step up. Well, Unit 2's exercises proved to be a big step up. I could follow and understand all of the lessons and then suddenly the end of Unit 2 made me stop dead. This theme was common amongst other users in the forums. I did eventually manage to get the first part of the exercises complete, but I felt that if the rest of the course was going to be similar, perhaps I'd best try something else.

Up next, C++, the language that my Dad used for at least the best part of a decade. What could go wrong. As it turns out, not that much. I like C++. Notice the present tense. In just over a week I will in fact be taking an exam in the "C++ Programming for Maths" module that I am currently undertaking. Sure, I don't want to continue on using C++ on my own, but in general I like the syntax, I like the feel of it all, and it's sticking. 

Maybe the difference then is that when I have a guiding hand, in this case in the form of a fortnightly lecture, I can follow along much more easily and not get lost. Or maybe it's the fact that this actually counts for something, that being my degree in this case. Whatever the reason, it's working. As I said though, C++ is not where the future lies for me.

Now I'm jumping back into Objective-C with the final goal of programming for iOS and OS X applications. I've chosen to go with The Big Nerd Ranch Guide to Objective-C Programming. So far so good, but as the past has shown, I'm sure that what lies ahead won't all be plain sailing. But that's part of the fun. Hitting a block and then eventually, no matter how much ink, paper, coffee, sugar, fresh air it takes, finding the solution and getting that dopamine hit. Oh, it's so sweet. Fist pumps and cries of joy have been becoming evermore present when I'm sat in front of the glow of a screen. 

It feels like I've finally managed to push through some sort of block and now the progress is more apparent. With a feedback loop things become that much easier and I can only hope that things continue as they have been of late.  

Comment

Learning in time

by Hamilton Chapman


When time spent is being discussed it is often split into two broad categories: consumption and creation. This separation between the ways in which we can spend time is frequently brought up in terms of time spent in front of a screen, namely a computer screen.

This model is all well and good but it seems to neglect a potential third option. Learning.

I have found myself mulling this over for the last few days largely because I am someone who loves to learn. However, occasionally I will question whether or not the time I spend learning is perhaps more gratuitous than it is useful or productive.

Arguments can be made to shoe-horn learning into either time spent consuming or creating but I think it's important to distinguish it as a separate category. 

When I sit down and learn something, the vast majority of the time it is with the intention of then acting upon my newly obtained knowledge with the aim of creating something. Should, therefore, this learning then be considered part of some time spent creating?

Potentially, although time spent is not the most important parameter.

As with most things in life, especially when something is being debated, it seems to boil down to how you define learning, or at least how you define time spent learning. If you're jumping onto Google to check some facts for something you're writing, that's not really learning. That's part of creation. You are using the information you find rather than learning it, even if you do manage to remember the facts you checked up on. However, if you sit down at your computer and power through 50 lessons on CodeAcademy, then I would count that as learning. So is it the length of time spent on something that defines whether or not you count it as learning or part of creation or consumption?

Even if you have the end goal of creating when you begin some learning I think it still makes sense to define any considerable length of time spent learning to be recognised as exactly that; time spent learning.

There are some intricacies that come with introducing learning as a third way that you can spend your time. Firstly, some learning can be achieved through creating. If you are learning how to create your own website by mucking around with some HTML and CSS then yes,  you are creating, but whatever is created is just a by-product (the vast majority of the time at least). Secondly, as with the fact-checking example earlier, if you are creating and happen to learn something along the way in order to continue creating, then the learning here is a by-product. Thirdly, if you are consuming something, say a blog post, and by doing so you learn something, then again the learning is a secondary outcome. 

The amalgamation of these ideas and definitions is something that I now try and consider when I'm managing my time. Learning can happen while you are consuming or creating. It can happen without you consciously choosing to learn. It happens when you have the intention of learning. It's that slight difference that separates pure learning and learning through consuming or creating. It's the difference between can happen and happens.

I've found that almost anything I learn will prove to be useful at one point or another, regardless of whether I'm learning through consuming, or I'm learning through creation, or I'm learning purely with the intention of learning. So don't think that I'm saying that learning is only really useful, or only really learning, when you are learning with that as your only goal.

If your sole intention is to learn and you have no direct, immediate intention to create or consume then that is the essence of learning as the third way of spending your time. What I'm having to think about is how much time spent learning in this sense is useful.

Comment

In a minute (or two)

by Hamilton Chapman


I was born in 1992. I am part of a generation that expects instant gratification. If you provide a service or a product that doesn't provide instant gratification, good luck.

A web page that takes over 2 seconds to load; sinful. A video online that has adverts longer than 15 seconds; outrageous. Don't even get me started on file download services that expect you to just sit there and wait 50 seconds before the download button becomes un-greyed.

I am currently in my third year of studying Maths at University. Maybe that's already led you to paint a picture of what I'm like. I would say that in some ways I am the archetypal mathematician. I like to be able to explain things logically. I enjoy solving problems. I enjoy video games. I wear glasses. But perhaps most importantly, I like people (including myself) to be concise. This seems to feed into how I interact with all things online.

Friends and family would nod vehemently if you asked them if I'm a patient person. However, that's only because I'm patient with other people. When it comes to myself and things online, I'm often anything but patient.

I get irritated if a download doesn't max out the internet connection I'm on. I find myself frustrated by clips of funny TV moments on Youtube where the uploader hasn't trimmed the clip down to the bare minimum. I will give up reading an email if it's full of waffle. You get the idea.

The other day my mum came out with one of her usual complaints of how my siblings and I are all guilty of claiming that we will do something that she wants us to do "in a minute". This sparked an idea in my head. Creating videos that are all two minutes or less in length - In Two Minutes.

The idea is to start off with something small. A regularly updated collection of videos on a given topic, likely something technology-focussed. Then from there, if there is any interest in the idea, to move into other areas.

The site could be split in two: education and entertainment. There could eventually be sections for anything, with the possibility for submissions from anybody. There could be a cooking section where someone could show you how to make the perfect sushi, a car section where you could be taught how to jump start a car, a fashion section where you could learn how to tie a bow-tie. There is so much that can be done in 2 minutes and under.

This idea may well have already been executed somewhere, or maybe nobody has seen a need for it, what with Youtube itself already hosting probably hundreds of variations of the video ideas I reeled off above. Regardless, I can't help but think that a site that offered what I've described would be popular. I for one would visit it. Now just to find some time to set this up and get it going. I'll do it in a minute.

Comment

Life under the thumb

by Hamilton Chapman


With the number of registered Facebook users sitting at roughly 1 billion, Twitter users at about half a billion, Google+ at approximately 200 million, and then a variety of other social networks all with 100s or 10s of millions of users, there is clearly an enormous amount of data that us internet-connected humans have online.

It's not just the amount of data that's available that astonishes. The breadth of topics covered by resources you can find online is quite frankly ridiculous. I think I can safely say that it has reached the stage now where I am surprised, very surprised, if I can't find what I'm looking for, however obscure it may be. Those occurrences are few and far between.

There are a plethora of websites and mobile apps that put some of this data to use in one form or another. There are places you can visit on the web to collate, search, collaborate, modify, create, and simply view large chunks of this data. You can do basically anything. This is why the internet is so popular and now such an intrinsic part of everybody's lives in the Western world, and an ever increasing segment of the rest of the world.

All of this is usually focussed on humans acting through the devices in their hands or on their desks in order to get to the data they desire.

But what about the other way? What about our phones, tablets, laptops, and desktops, giving data back to us? This has been around for quite a while with such familiar sights as "if you like this then why not have a look at this?", "customers who bought this also viewed", along with more specialised recommendation services such as Last.fm.

Sites and apps that seek to take some data from you, and then give you suggestions for other content that you should statistically enjoy, exist aplenty. Services have popped up that will take data from your Facebook account's data, which often contains a collection of films that you've noted down as being a fan of, and then produce a list of others films that you would likely also be a fan of.

Being a student about to embark upon my last year of a Maths degree, this sort of service interests me greatly. I'm intrigued as to how they devise an algorithm that can predict fairly accurately what films you would like, given just a measly amount of information about other films that you've enjoyed.

This sort of recommendation generation got me thinking about what exists currently that is available to consumers in this area. There are lots of content-specific recommendation services, much in the same vein as the aforementioned Last.fm, as well as some more general ones, such as Tipflare.

However, what if there were a service, most probably in the form of a mobile app, that could look at your calendar, take data in from your social networks, as well as recommendations from the likes of Last.fm et al, and then make suggestions as to what you could do that evening. You could load up the app and be presented with a simple screen that shows you options depending on what time of day it is.

Take this example. You've just got up from desk at the office and you're heading home. You have nothing planned for the evening, but you feel like doing something. You slide your phone out of your pocket and load up the app, which can see that your calendar is free and that it's already 18:30, so it offers you the option to "Arrange something this evening". A click takes you to the next screen, which displays your closest social links as suggestions of people you could throw the idea of doing something that evening to. Having chosen a few good friends, you are then given a page of suggestions of things that you could do, ranging from seeing a film that the app knows all of those invited are likely to enjoy, to going to see a local sports fixture.

That sounds ideal to me. Sometimes I feel like doing something, but I can't quite be bothered to give it any thought, so I'll end up relying on someone more energetic to sort something out, or I'll spend the time with just myself.

These sorts of services that take in a heap of data and then produce something useful, having processed it, are becoming more and more prevalent. IFTTT (IFThisThenThat) is an example of something that takes in a large number of the user's data feeds and pumps out something useful after it has worked its magic. To be fair, it does only ever take two of these feeds at a time, but the principle is there, albeit in a slightly different, and simpler setting.

In a life where we are living ever more through the multitude of devices that exist under our thumbs, it seems almost inevitable that the burgeoning trend of devices providing the user with personalised data, rather than the other way round, will only continue. The idea presented above is just one minuscule example of what could become commonplace in the not-so-distant future.

Comment

Somewhere with a view

by Hamilton Chapman


Instagram is dominant in the photo-sharing market. I'm not sure anyone would debate that. If you're looking for an app where you can show your friends what you've been up to, then Instagram is where the majority will end up.

Of course, there are competitors of sorts, but perhaps the biggest competitors are not directly vying with Instagram for the same audience. The seemingly ever more ubiquitous Facebook aims a fair amount of their efforts towards photo sharing. This was emphasised by their willingness to part with $1 billion to buy Instagram.

For now at least, Instagram seems to be remaining its own entity, with Facebook having not meddled with its existing form and function too much. One can only speculate as to the long term future of Instagram, but the announcement of Instagram's latest incarnation, 3.0, clearly shows that the team is betting heavily on location-based sharing. The newly created Photo Map attached to each user's profile appears to be an excellent addition that will now doubt please some users.

So with Facebook now owning Instagram and therefore not needing, or necessarily wanting, to directly compete with Instagram, who else remains as a realistic and popular competitor? Well, Tumblr could be cited as a source of competition, along with the likes of Twitter and Flickr.

It's currently an interesting time for all of these companies. Flickr could be on the verge of somewhat of a revival, or potentially a complete overhaul, now that Marissa Mayer is at the helm of Yahoo. Twitter is facing some criticism over its stance on third-party apps and its revenue model that is heavily ad-based. The other company mentioned, Tumblr, seems to have lost some of its novelty that drew in so many users, but with monthly page views, at the time of writing, sitting at an enormous 16,426,457,088, perhaps they aren't too worried about their situation.

Then again, are any of the above really to be considered competitors to Instagram? I'm not convinced that they are. In fact, is that even the best way to be framing the question? Perhaps Instagram has already managed to claim enough of the market that it inhabits to not really have any direct competitors anymore.

With Instagram being so tightly linked to Twitter in terms of how many photos that are linked to on Twitter originating from Instagram, maybe Twitpic is to be considered a rival to Instagram. In fact this is probably the fairest comparison to make, and suggests that it's not solely images that people want to share. That's why Instagram is used heavily as what is essentially a link service.

These observations considered, I find myself in a position where I've somewhat talked, or written, my own idea into the realms of uselessness. Nevertheless, I'll plough on.

There appears, or appeared at least, to be a gap in the market. The niche being aimed at is one based on the idea of "sharing your view". I frequently find myself in a position thinking "I wish I could capture this view and share it with so and so". Yes, Facebook, Twitter, Instagram, et al; they all exist and allow people to do this, to varying degrees. But they're bogged down with funny quips, trending articles, and endless photos of food.

The idea is to have a mobile app that allows the user to open the app and immediately be able to capture what they're looking at, either in still or video format. This can be then be shared with an individual, inside the app, or added to public feed that is shared with anyone who is connected to the user sharing their view. There is of course also the potential to allow users to then share this to Facebook or Twitter, but the focus of the app would be that it is standalone.

Users would be drawn to using the app because of the opportunity of enjoying someone else's view or sharing a view of their own with others. This is similar to one of the features that Google's Project Glass has going for it. With Google's glasses on, you could send your view to someone else to enjoy. Perhaps the app I'm dreaming up right now could in fact do something similar? Not just share your view via some medium that you captured in the past, but stream it live. You could explore the world through your mobile device. With the every-growing prevalence of geo-tagged photos and videos, you could be sitting on the train one day, being amazed by the view that someone has, and then find yourself in that same spot, somewhere later down the line, experiencing it first hand. That's the concept that really appeals to me.

Writing my thoughts and ideas down seems to be working. Distilling ideas, or the concepts they are based on, into something that I would love to use myself is apparently easier for me to do through writing than keeping it all floating about in my head, hoping that something useful pieces itself together.

Comment

Hello world. Welcome to my ideas

by Hamilton Chapman


I've had some ideas that have been bouncing around my head every now and then for quite a while. The vast majority, if not all, are based on some form of technology. Recently, I've begun to feel like I've got loads of ideas already going through my head periodically, as well as plenty of new ideas.

In an attempt to consider whether or not any of these ideas have anything to them I've decided to write about some of the surrounding information, as well as the ideas themselves. This is essentially an experiment to see if putting things down in text can help me think more thoroughly about any ideas I have, or maybe even help me generate some new ideas. We will see.

Comment