Summer of code

Summer of code

After 16 years of absence from writing code, this is what I learned over the summer. It probably applies to anyone in their mid-career who either want to start coding from scratch, or pick up coding again like me. If you are an experienced software engineer, I would be surprised you have read this far.

First, Why?

The more practical answer is that earlier this year I joined a project aiming to reinvent the enterprise communication and collaboration software that simplifies people's life and get back time. We have gorilla sized ambition but meerkat sized budget and team, so it is of necessity to jump in and help whatever I can.

But of course you want more philosophical answer: coding is the best way to directly express your ideas and make the most tangible impact. With the right platform, you can have the power of reaching to the millions directly. As Apple summed it up nicely in their WWDC 2014 tag line: "Write the code, change the world"

What can you actually do?

As a newbie, a bot on one of the messaging platforms will be your best bet to start. It is easier than a real mobile app and gives you instant access to millions of potential users. In Facebook messenger's case, 900M+ users as of April'2016. Their APIs are fairly straightforward and often support several languages, so you get choices.

Initially I did the usual Coursera and Code Academy courses with example exercises to learn a new coding language, but very quickly it became boring. Therefore it is much better to build something simple yet interesting and real. My example list are:

  1. A Chatbot like Eliza or Alice to keep yourself and friends entertained: this will get you into natural language processing, some form of AI (artificial or augmented), conversational user interface, and humor.
  2. A Ride-share bot for finding the best fare between Uber and Lyft: like this example, you get to use Uber/Lyft's API in addition to the messaging platform's API, find out how to host your backend server, and think about user experience.
  3. A game bot that can play minesweeper, tic-tac-toe, or trivia for multiple players: this will get you started on how to keep state for each players, potentially using a database like MongoDB, scale the backend server, and build graphic user interface.

How did you do it?

Good news: Software development has gotten quite a bit easier in the last 15 years! I found out when I came out of the cave this summer. The amount of open source projects, libraries, and code are mind boggling, let alone the new programming language and tools. So here are the basics for newbies:

  1. Get a Mac (or Linux machine), and skip your corporate Windows PC. Optional: install virtual machines (virtualbox and vagrant) when you start to get fancy.
  2. Pick a simple scripting language like Python or Javascript: simpler and more natural language like syntax; good package management to utilize tons of open source libraries, decent error handling and fairly easy to debug.
  3. Use open source code as much as you can: do a lot of research on what has been done in this domain, sourceforge.net is your mothership. Beg borrow and steal. Learn the basics of using git. Get yourself a nice text editor.
  4. Use API, from the messaging platforms like slack, Skype, and Facebook Messenger; as well as other service you want to mash in (e.g. Uber for ride-sharing, Twilio for text messaging).
  5. Get an Amazon AWS account and open a free EC2 virtual machine, in order to run your backend server. You can also use Amazon's API Gateway and Lambda if you don't want to bother with setting up your own server.

When all set and done, you might surprise yourself that actually you only wrote 50-100 lines of so-called glue logic code for a half decent bot that might impress yourself immensely. Time to celebrate and move onto your next bot.

And one more thing, it is never too late to (re)-start coding. Try it, and you might find it as addictive as the never ending summer in California.

Gary Hung

Senior Principal IC Design Engineer at Broadcom

8 å¹´

Nice article Bruce! and welcome back to coding! :)

赞
回复

要查看或添加评论,请登录

Zheng "Bruce" Li的更多文章

  • Build an AI trading agent using Anthropic’s MCP - Part II

    Build an AI trading agent using Anthropic’s MCP - Part II

    An AI Agent with a Web 3 wallet is a pig that can fly Series recap This is the second installment of a mini-series of…

  • Build an AI trading agent using Anthropic’s MCP - Part I

    Build an AI trading agent using Anthropic’s MCP - Part I

    Series Introduction In this mini-series of tutorial, we will utilize Anthropic’s Model Context Protocol (MCP) as the…

  • What is Diffusion LLM and why it matters

    What is Diffusion LLM and why it matters

    Introduction Today Inception Labs released the first commercially available Diffusion Large Language Model (dLLM) -…

  • How AI "think" with DeepSeek R1

    How AI "think" with DeepSeek R1

    It is highly rewarding to see how AI "thinks" aloud step by step, trying alternatives, and self-validate and iterate…

  • Elon Musk’s leadership style

    Elon Musk’s leadership style

    Andrej’s revelation Andrej Karpathy, founding member of OpenAI and former Sr. Director of AI at Tesla, speaks with…

  • $300 AI computer for the GPU-poor

    $300 AI computer for the GPU-poor

    Intro Running open source AI models locally on our own computer gives us privacy, endless possibility of tinkering, and…

    2 条评论
  • The cheapskate’s guide to fine-tuning LLaMA-2 and run on your laptop

    The cheapskate’s guide to fine-tuning LLaMA-2 and run on your laptop

    My mission Everyone is GPU-poor these days, and some of us are poorer than the others. So my mission is to fine-tune a…

  • A practical 5-step guide to do semantic search on your private data with help of LLMs

    A practical 5-step guide to do semantic search on your private data with help of LLMs

    If you have a lot of private enterprise data, how can you use a chatGPT-like AI system to help you search for relevant…

    5 条评论
  • R.I.P: "Innovation in Mobile" (2015-2023)

    R.I.P: "Innovation in Mobile" (2015-2023)

    It is with heavy hearts that we announce the passing of "Innovation in Mobile", who took its first breath in 2015 with…

    1 条评论
  • Microsoft’s Minotaur Moment

    Microsoft’s Minotaur Moment

    The Minotaur myth The Minotaur from Greek mythology is a perfect example of something that had tremendous power yet…

社区洞察

其他会员也浏览了