Tuesday, Dec 24th

Learning to Code: What You Or Your Kids Should Know

adrienneAre you or your kids curious about what it takes to learn to code? A Scarsdale High School grad was just interviewed about her experience learning to code by builtinNYC, an online community for NYC start-ups. Adrienne Fishman, SHS class of '10, is now a software engineer at the news website BuzzFeed in New York. Here is what Adrienne Fishman and Andrew Hogue, the Senior VP of Engineering at Foursquare said about what they wish they knew when learning to code:

Here is the article, as it appears on builtinnyc.com

There is no right way to learn how to code. Coding is a skill like any other — it incorporates language learning, problem solving and creativity. There's grammar and vocabulary to master, processes to work through and craftsmanship to hone.

This is why we've recently seen a swell of coding schools, bootcamps and interactive programs pop up that allure us with the promise of digital dexterity.

Coding is a means of communicating ideas and inventions, and in the face of the frustrating, lonely and tedious process that is learning how to do this, you must be determined and persevere.

In order to alleviate some of this pain, we caught up with some of of New York tech's top engineers to find out what they wish they knew while learning to code.andrewhogue

Adrienne Fishman is a full-time software engineer at BuzzFeed who started working for the company in 2013 as a product management intern. Over time, she learned how to code and worked her way up the media giant's ranks into her current position.

Andrew Hogue is the Senior Vice President of Engineering at Foursquare, leading the company's world-class engineering team that's turning ideas into reality. During his time at the company, Andrew has headed up Foursquare's search team, responsible for big data applications like Explore, Pilgrim, and Venue Search. Here's what they had to say:

Built In: Why did you decide to learn to code?

Adrienne Fishman: When I entered college, I wanted to have a liberal arts education. I had always been interested in politics and decided to major in government. At the time, my brother was several years out of college and worked in tech. He told me that engineers were in high demand and encouraged me to take a computer science course. I listened to his advice and took my first computer science course in MATLAB in the fall semester of my sophomore year. The professor was remarkable, and contrary to my expectations, I really enjoyed the course. As I continued to take courses for my major and minor, I also elected to take a computer science course each semester from then on.

Built In: What do you need to know before you learn to code?

Fishman: I don't think you need to know anything in particular before you learn to code. That being said, I had never been exposed to the concepts of computer science before taking that first class. Therefore, I think it is important to have an open mind and to become comfortable with being uncomfortable. You have to be willing to accept that everything you learn in a computer science course is not going to make sense right away. However, if you put in the time, concepts will start to click and it is an extremely rewarding feeling.

Andrew Hogue: Frankly, not that much! There's some great material on the web these days—everything from courses on Code.org or Code Academy down to the tutorials for specific languages like Python or Ruby. If you have a computer and some determination, you can learn to code. The more important thing is to know that, like anything worth doing, it'll take some time. No one becomes an expert at chess or football or sales or design overnight, and the same applies to coding. Plan to be frustrated at first, and know that you'll break through and things will get easier. It's also a good idea to pick a project that you're excited about to keep you motivated. Something simple like a way to store your recipes or a simple game. Keep that project in mind as you read tutorials or take classes, and try to apply what you're learning along the way.

Built In: What's important to keep in mind when you're learning to code?

Fishman: I think it's important not to give up when concepts aren't making sense. Coding can be extremely difficult especially in the beginning when all of the topics are completely new. Learning to code can sound like a daunting task. However, coding is just like anything else; if you put in the time and effort, you can excel at it.

Hogue: It won't come easy at first, but it gets better. There are some amazing tools these days that "hide" a lot of the really complex stuff that goes on with coding, but there are still concepts that'll bend your brain a little the first time you run into them. Just relax and let it wash over you and know that eventually it'll all start to make sense.

Built In: How should you leverage other people (or resources) while learning to code?

Fishman: If you know anyone who can code, he/she can be an extremely valuable resource. Ask them questions about a particular topic that is giving you trouble. Explain a specific task to them and see how they would approach the problem. Their way of thinking can shape your perspective with future tasks. Another helpful resource is Stack Overflow. Most of the time, any questions that you have are already on Stack Overflow and you can read the threads. If you still can't find the answer anywhere, post a question yourself! Books are also a great resource. All of the O'Reilly books are comprehensive and are written in a way that is accessible. BuzzFeed recommends that people who want to learn Django read Two Scoops of Django, which is a good resource as well. Depending on what language or framework you are trying to learn, go to the bookstore and see what is out there. Programming books have been an invaluable resource for me over the last few years.

Hogue: Having a buddy who already knows how to code is probably the best possible thing — mentorship is a huge part of engineering and coding in general, at all levels. Someone who's been around the bend before can help you understand what's "hard" and what's "easy" when you're trying to undertake a project, since "hard" and "easy" for coding are often very different than they appear from the outside. There are also some amazing forums and groups out there for help with specific problems. Sites like StackOverflow contain answers to pretty much every problem you'll run into. Google is your friend—if you have an error, just paste it into Google and chances are someone else has already had the same problem, solved it, and posted the answer online.

Built In: Are there any lessons or experiences that will ensure your success as a coder?

Fishman: I believe in order to be a successful coder you have to be patient and persistent. Coding can be extremely frustrating at times. However, if you stick with a problem for long enough, you will figure out a creative way to solve it. You have to be willing to put in the time to test different solutions. I also think you think you have to know when to ask for help. If you are spending days trying to solve a problem and you aren't getting anywhere, it isn't beneficial to sit there stuck. Most of the time, talking to someone else about an issue won't just help you solve the problem at hand but will also help you in the future when you inevitably encounter a similar problem.

Hogue: I'm not sure anything can "ensure" success, but persistence will definitely pay off. Coding can be a very frustrating enterprise—computers still aren't very good at telling us what's wrong when they're broken. But it's also incredibly fulfilling to create something with your hands (and maybe, if you're lucky, get millions of people to use that thing you created as well).

(Full disclosure: Adrienne Fishman is the daughter of site owner Joanne Wallenstein.)