The Nokia Developer team enjoys encouraging young developers. After all, they’re the future of software development, and having been raised with computing devices all around them, they often have bold and interesting ideas.
We were therefore delighted to discover that one of the winners of the Nokia Windows Phone 8 Wiki contest was a 14-year-old developer from Silicon Valley, Matthew Sotoudeh, aka ‘MatthewThePC’. We didn’t know he was 14 when we made the award – it turns out that he’s a neighbor of your intrepid Editor-in-Chief (who had no part in the selection process), and we made the discovery by accident! So we thought we’d sit down with him and discuss his experiences with software development and Nokia.
How old were you when you started becoming interested in programming, and what was the first environment you worked on?
I don’t know the exact year, but around 2008 I got started writing simple programs in C on Linux with my father’s cousin during a trip to Canada. Soon after that, I played around a little bit more with C in MinGW, but finally ended up learning Visual Basic .NET on an XP netbook running Visual Studio 2008.
Tell us about your current development project, Classfinder.
There have been three generations of Classfinder.
The original Classfinder was mainly a testing ground for me to start learning about web development. It allowed students in my school to enter their schedule, then get a list of every other Classfinder user who was in their class. The code was extremely simple, and there were all kinds of flaws and problems with it (”advanced SQLi/XSS protection” meant “limit inputs to 30 characters” to me back then), but it worked fine for its purpose. The original Classfinder was created with PHP and MySQL, so it was a really good way to learn those technologies. It got about 200 users, and my friend Adhiv said he was learning HTML/CSS, so he joined the project.
For the next school year, it was pretty obvious that the original Classfinder just wasn’t going to work out, so we created a new one, still running on PHP and MySQL, this time with accounts, posting, polls, and more. The design improved a lot, and I started using input sanitization and prepared statements, as well as open-sourcing the code. We also brought another friend into the project, to handle setting up meetings with the school, etc. Unfortunately, it was written in PHP without any real kind of framework, so it became extremely difficult to maintain and update, which meant it was again time for a replacement. Nonetheless, it still has a bit above 350 users. [Matthew’s school has around 1100 students, so that’s a pretty impressive percentage!]
We’re currently working on the next Classfinder, which will run on Azure with an ASP.NET MVC and SQL Azure backend, still open-source, and thanks to Azure’s Github integration, everything on Github is exactly what’s running on Azure. Basically all of it is being rewritten, and Entity Framework, SignalR, the simple membership functions, etc. in ASP.NET are making it a lot easier to maintain than the PHP version, so hopefully this is the last major version for a while. It has a new interface with a lot of comet/SignalR stuff to make it more real-time. We’re hoping to develop the new Classfinder is cooperation with the school, and next year ask nearby schools if they would like to use it.
You’ve impressed our wiki editors with your technical know-how. Are you largely self-taught, or have you taken classes in school or elsewhere?
I’m mostly self-taught. After learning a small amount of C, I used a tutorial on MSDN to learn the basics of VB.NET, and then applied that to learning C#.
What gets you excited about mobile programming?
What gets me excited about mobile programming is the idea of making apps which the user has with them all day, during all parts of their life. Your app has to integrate with their entire life – not just the few hours a day they would be using a desktop or laptop computer.
What other communities (if any) are you involved with? Do you interact with any student-based developer communities?
I ask (and sometimes answer) questions on Stack Overflow and Superuser, and I am fairly active on Neowin.net. I don’t currently belong to any student-based developer communities, but hopefully going into high school I’ll have more opportunities to interact with peers.
If you could offer us advice to make the Nokia developer community more inviting for young developers, what would it be?
Providing an easy-to-get-to introduction to development on Windows Phone could be very helpful to young developers – I know that having a straightforward, step-by-step tutorial on Visual Basic .NET was a great way to learn many of the basics of programming, and creating actual applications in the tutorial definitely made me want to learn more.
Thanks, Matthew! We’re looking forward to seeing your progress as a developer, and expect great things from you in the future.