Hi Reddit! Our mission at the New York Code + Design Academy is to teach anyone to code. We offer evening, online, and intensive classes in Web Development, iOS + Android programming, User Interface + User Experience Design, and various other technology/design related topics. We're the first school to teach an in person class on Apple's new development language, Swift.

As the Chief Academic Officer, I devise curriculum for our classes, make sure teachers' and students' needs are taken care of, and run the academic side of our company. I also am an experienced Web Developer + Rubyist (Github). AMA about learning to code or learning technology skills!

Proof:

https://twitter.com/NYCodeDesign/status/479688303826853889

http://imgur.com/fRZbbpP

EDIT: Ok I'm here, bring on the q's!

EDIT at 12:57PM EST: I'm still answering questions! Feel free to keep asking =D

UPDATE 6:17pm EST: Hey guys, I have to go teach Web Development 100 (we're learning about Sinatra tonight, yay!). If anyone has any further questions, I'll keep answering them when I can as I'm a pretty avid Redditor. Just keep asking!

Comments: 80 • Responses: 41  • Date: 

karmanaut5 karma

Is there any reason for someone to learn to code if they are not a programmer or someone who does this on a regular basis?

nycdazach10 karma

Hi karmanaut - actually, believe it or not, I think many people could benefit from learning to code. That doesn't necessarily mean that all humans on the planet earth need to learn, but learning programming can be beneficial to non-programmers and people who don't do this on a regular basis.

For example, I had a student in a class a few sections ago who was a product manager at a large startup company. He was frustrated because he had a lot of trouble telling when his developers really needed extra time and when they may have possibly been pulling the wool over his eyes. After learning about back and front end technologies in our Web Development 100 course, he went back to his job much more confident in his abilities to judge the scope of a project and manage his team more efficiently. He also was able to build personal web application projects that he always wanted to have for himself.

Programming can teach you many things besides just how to build a website or application. It will teach you how to think logically and also how to tackle things with no fear. Many students come in afraid to enter a certain command in the command line for instance. My line is always, "What's the worst that will happen - will your computer explode?" (unless I see them entering sudo rm -rf /, the command to delete your whole computer). Even my students who didn't do something directly related to coding before or after the course seem to come out more confident individuals with a greater understanding of the web and/or technology, which is a huge part of everyone's daily life.

Hope that helps!

WileyBird1 karma

Props for teaching to code on linux!

nycdazach1 karma

Ha I wish we did - definitely *nix based systems though, that command will work on a Mac (well, I believe it double checks before going ahead).

cappnplanet4 karma

How much does a typical course cost?

nycdazach3 karma

We have a bunch of different options depending on what you're looking to do. I would check out our classes page, which has a detailed breakdown of the cost of each class. Once you click on a class, just look at the information bar on the right/bottom =)

DROP_TABLE_Students3 karma

Hi Mr. Feldman,

A couple of questions here:

  1. Are all of the classes at NYCDA online?
  2. If they are, are they open to everyone, regardless of age and/or location?

I have several friends who have an interest in web development, and I myself want to improve on my woeful front-end skills, but our geographical position in Canada puts us at a bit of a disadvantage since we're rather lacking in classes like those you offer.

Thanks for doing this AMA!

nycdazach2 karma

Hello DROP TABLE students; love your username!

  1. All of our classes are actually in person! Except our class on Android Development launching in September - that class is online only.

  2. Yes, that specific class is open to almost anyone! I believe the minimum age is something like 13.

Where are you in Canada? We are currently looking into expanding and who knows, perhaps we'll be up north sooner rather than later!

DROP_TABLE_Students1 karma

Thanks! :) I actually live slightly north of Toronto. btw, if you're interested in expanding to Toronto, Toronto Public Libraries has a thing called Digital Innovation Hubs (link) where they put a whole ton of stuff like Makerbots, iMacs filled with software, and in the branch I visited some months ago, a drone fitted with a camera. Although I can't speak for them, I'm sure they'd love to collaborate with you guys on classes (they do have some of their own, but from the descriptions, they're not as advanced as the ones you guys offer), so if you two decide to join hands, then good luck!

nycdazach1 karma

Thanks for that DT_s. I will keep all of that in mind as we try to extend our tendrils to the north!

RekrahCreative1 karma

How about Alberta? ;)

nycdazach1 karma

Well, I've heard there's a Rural Alberta Advantage!

RekrahCreative1 karma

I've never heard of that before... I shall have to google as I'm not all that rural Thanks!

nycdazach1 karma

BrooklynBound222 karma

What exactly is Ruby/Ruby on Rails? I've heard this term a lot and I'm still unsure of what it brings to the coding/designing community. Can you shine some light?

nycdazach5 karma

Hi BrooklynBound,

Ruby is a programming language. If you've ever heard of C, C++, Python, Java, etc - these are all also programming languages. So they're all a cohesive set of rules and methods that allow you to give instructions to a machine. Ruby is a bit different from other languages though - it was invented by Yukihiro Matsumoto (aka "Matz") in the mid-1990s. His goal was to make developers more productive and in the end, more happy.

Rails is as web application development library/framework implemented in Ruby developer primarily by DHH (David Heinemeier Hansson), meaning that it's really just a bunch of Ruby code wrapped up into a neat little package for web developers to use. What it brings to the web development community is a set of standards, a convention, to use when developing web applications. Rails espouses "convention over configuration", meaning that it assumes you'll do things a certain way in order to make the development process easier for everyone. This doesn't necessarily mean that Rails is the fastest or most efficient web framework. However, it does mean that it can be incredibly easy to get up and running with a basic, Twitter-like web application for instance, really quickly. A seasoned Rails dev could build a basic version of Twitter in a few minutes. With raw PHP "back in the day", this would have taken much longer. So basically, Rails as a framework is a way to increase developer productivity, built on and using a language that was built for developer happiness.

In summary, what Ruby and Rails bring to the coding/design community is an easy way to get up and running fast with web applications. However, the only pitfall is that some beginners never learn to understand the underlying technology that powers Rails, which is similar across frameworks and stacks. This is why we teach Sinatra first in our classes. Sinatra is a much simpler framework where you can have a web app up and running in literally 4 lines of code. We start from there and teach the basics of web apps including sessions, authentication, http methods, etc and this way our students understand that Rails isn't just magic!

Sorry for the long-windedness, but I hope that answers your question =).

BrooklynBound222 karma

Yes it does. Thanks for the in-depth response!!!

nycdazach2 karma

Woo! No problem.

GilbertCode2 karma

What would you suggest to someone who is currently in his thirth year of application programming and is lacking motivation to actually produce code in his free-time?

nycdazach2 karma

Hi GilbertCode. I've certainly been there in a few gigs where I've lost the motivation to work on side projects and it can be pretty depressing. Unfortunately there's not really an easy answer - the best one I can give you is that you probably need to take some time off. Spend a few days on a beach or sitting in the park somewhere and let your mind wander a bit. I find that whenever I go on vacation for a week or two, I'll come up with some crazy project idea for another and have an MVP up by the time I get back or a week or two later! Then I have a fun thing to work on in my spare time. You can see some examples of my side projects at

projects.zfeldman.com

some of these are super silly and one of them is a little bit NSFW, just a warning Redditors.

Either way, the best advice I can give you is just to constantly put stuff up. Even if it's not really ready. It feels so good to get feedback and advice from the community that it motivates you to get to the next project. Good luck!

BoyManGodShit_2 karma

Hey Zach. In your opinion, are there any existing language that are 'hip' right now in terms of increasing usage and expanding usability across different environments and platforms?

nycdazach1 karma

Hi BMGS, it's always a bit of a compromise when you talk about languages and frameworks that span different environments and platforms. We recently held a talk on Swift, Apple's new development language for iOS, in which our instructors addressed the fact that it's hard to get native-level performance from any language or framework that isn't just the native/core level language or framework for that system. For instance, we have tools like Phonegap and Rubymotion that are meant to allow you to program apps across platforms using native web technologies like HTML/CSS/JS and Ruby respectively. It seems to be that Rubymotion is picking up steam and also is releasing an Android version of their toolkit to make it possible to program Android apps in Ruby. This would mean that it's now possible to program apps for iOS/OS X/Android/the web in Ruby. But I'm not sure if that necessarily makes it "hip". Definitely usable across different environments and platforms though, with a bit of learning overhead depending on where you go.

Another language that I've seen a ton of usage in cross-platform is JavaScript. There's an increasing movement to use this language in really cool places like in Arduino/physical computing. Obviously a ton of good stuff coming out on the web app/server side as well with AngularJS (which we teach a class on), node, backbone, etc. JavaScript is described by some as the "hot" language now.

Personally, I think the best new language to come out lately is Swift. It's proprietary and not cross-platform, but it's just so cool and easy to work with. Check out the lecture we hosted on it for confirmation on that!

FungleJunk2 karma

I love what you guys do. What would you say your biggest innovations are that separate you guys from the competition? How does one apply for a job with you guys!?

nycdazach2 karma

Hey FungleJunk, thanks for that! There's obviously a lot of competition in this space even in just the city of New York. We think that our competitors, for the most part, are also doing some pretty amazing things in the space. Everyone wins if more people learn programming!

Innovation-wise, we pivot and move quickly to accommodate the latest trends, as exhibited by our launch of the first ever in person class on Swift, Apple's new development language.

We think our main advantage currently is in the fact that our courses are in person and that we keep pretty small class sizes. Almost all of our classes are currently limited to 15 students which provides a cohort big enough for collaboration but also small enough to allow close instructor interaction.

Our students have also told us that we're very responsive and open to their concerns and also criticisms. A student hasn't yet told me they felt like they weren't listened to or taken care of. Learning to program is a difficult thing so we try to be there every step of the way. We're very much believers in running a transparent and open school and try hard to meet this goal every day.

We're actually hiring now, glad you asked!

Juplay2 karma

I'm always interested in how women can be more incorporated into the coding community, a field that is predominantly male.

Who is an “average” coder? Male/female? What age?

Also, how many women would you say take your classes?

nycdazach2 karma

That's funny Juplay, we're always very interested in that too! We hosted a Women Who Code meetup here just last week. Our Director of Operations, Robyn Steinberg, is especially involved in efforts to increase the amount of women learning to program and is a shining example of how women can get involved in this industry (she's awesome!) We also offer scholarships to our intensive course for women. Our upcoming Web Development 100 evening class is actually pretty amazing in that the class is 70% women! I'm stoked!

The "average" coder these days, from what I've seen, is usually male and between the ages of 20-40. But we'd really like to change that and see people from all walks of life coding.

bamfyman2 karma

Do you accept the GI bill, as other code camps I have seen have yet to accept the GI Bill due to the hoops you have to jump through?

nycdazach2 karma

Hi bamfyman, we don't currently accept the GI bill but we hope to in the future!

nycdazach2 karma

Also, thanks for your service salutes

Murdakilla2 karma

[deleted]

nycdazach3 karma

Hi Murkadilla, it's very possible, but you'll have to work really hard. It may take months or years for you to get there and even then, you may not have the right network to land your first gig. It's repeated really often but networking is actually pretty key in this industry. Many of our students come to us because they want a jump on how long it will take for them to be ready to get their first gig! It can take longer if you're teaching yourself and our courses give people a way to not only gain the skills but also network with industry professionals.

Keep working hard though and you can do it! Good luck out there!

johntaylorpi2 karma

What's the difference between scripting and programming in terms of game development?

nycdazach2 karma

To be honest John, I'm not a game development expert specifically. However, my understanding is that scripting generally refers to getting the game to play in some automatic way or unlocking some sort of extra bonus material in a pre-existing game. Programming a game is typically a much more involved process. It depends on how much you're willing to use in regards to open source libraries and engines, but game development can involve many low-level languages like C, C++, C#, and sometimes even as "bare-metal" as assembly. However, if you're willing to use a pre-existing engine, or library of pre-existing code to govern real-world rules like gravity in a virtual world, then programming a game can be a little bit easier. If you wanted to get started with game development, it seems that scripting would be a fun way to get your hands dirty without doing too much work! Alternatively, you could try using one of the major game engines like Unity, Unreal Engine, etc. that has good online tutorials to go off of.

If anybody wants to chime in with a bit more experience on this topic, I'm sure it would help!

midoman1112 karma

How long would it take me to master HTML and CSS?I already know the basics but I want to become better at it.

nycdazach3 karma

Hi midoman, honestly, I don't think anybody ever truly masters HTML and CSS. The spec is changing all of the time and new technologies like SASS and HTML5 are constantly changing the definition of "mastery"!

However, I'd say that if you've been building websites for 2-3 years and working mostly on the front-end, and not using templates, you'd probably have a pretty darn good understanding of things. Our Front End 101 class provides a lot of the object-oriented JavaScript and element building training you'd need as a solid foundation!

Johnbathehutt2 karma

Hi, I will soon be graduating with degrees in mathematics and education. I am well versed in logical thinking, but I don't know code just yet. I'm learning java now. I was wondering what kind of job opportunities there are available? This seems like an ideal learning/teaching experience for me!

nycdazach2 karma

That's pretty awesome Mr. Hutt, congrats to you! My roommate also graduated with a degree in mathematics and he loves visual design - he became a front-end developer.

I'm not really sure where in the world you are, but you may want to start with a more simple type-safe language like Ruby, Python, or Swift to get going. Job opportunities in this field are pretty rich right now depending on where you are. Many of them are in Front-End Development (HTML, CSS, JavaScript), Back-End Development (Ruby/Sinatra/Rails, JavaScript/Node, Java/Play), and Mobile Development (Java/Android, Swift/Obj-C/iOS, etc).

My main piece of advice to you is to study a language that allows you to have success quickly. It can be very discouraging to study a language that is not so easy to work with for a beginner, which is why I'd recommend Ruby, Python, or Swift. But I think you'd also do fine studying Java as long as you're not finding it too crazy!

Job opportunities-wise, we're always looking for teachers for our courses. However, all of our teachers have to have had some real-world programming experience. Feel free to give us an e-mail in a bit though once you've had that!

CaptainKick2 karma

What is the best "field" for aspiring programmers at the moment? Front-end, back-end, Web development, app development, etc.

I'm about to start learning and want to know where I should focus most.

nycdazach3 karma

Hi CaptainKick, that's a pretty loaded question! If I were just starting to learn though, I'd probably focus my energies on Swift for iOS/OS X development. As one of our instructors said, they've leapfrogged the development kits for Android and Windows phone by generations - if you get used to programming with languages like Swift now, you should be prepared for what's to come. That's not to say that you won't learn a ton trying a web framework like Rails or Django, but Swift would be a pretty cool place to start! Just not a ton of online resources for it. If you want something with a ton of online help, try Ruby/Rails or Python/Django.

CaptainKick1 karma

Awesome, thanks for the answer!

nycdazach1 karma

You're welcome, Captain!

swissss2 karma

Thank you for doing this AMA! As someone who just starting learning Python, my questions is rather simple. Do employers focus more on portfolio content, or do they weigh college education heavier?

nycdazach2 karma

Hi Swissss, you're quite welcome. I can't speak for every single employer, but most startups that I've seen care so much more about what is in your portfolio than where you've gone to school. I believe the larger organizations will care a bit more about your pedigree. Good luck out there!

attentionwandered2 karma

How can I become an expert in Data Structures? I often find it very hard to follow text book explanations or a teacher's description. I usually just end up running the code and hoping it works.

nycdazach2 karma

Hi AW, we don't offer a course specifically on this topic, although our courses are tangentially related. Like most programming concepts, I follow the same method as you: run code until you find an implementation that works! Then, try another implementation. Also I would write a lot of pseudocode, just comments explaining your thought process. In general, keep solving harder and harder problems. Good luck!

shadamedafas2 karma

What do you think about codeschool?

nycdazach1 karma

I haven't used it myself but it looks pretty awesome! Online instruction doesn't work for everybody but if it works for you, this looks like a good choice =)

dildosmith2 karma

[deleted]

nicolethenerd3 karma

Yes! There's lots of wonderful stuff out there for kids to learn programming nowadays - I highly recommend Scratch (scratch.mit.edu), a kid-friendly graphical programming language, and also Khan Academy's programming lessons (https://www.khanacademy.org/computing/cs), as well as Hopscotch (https://www.gethopscotch.com/) a free iPad app similar to Scratch. Scratch also has a companion website for teachers with accompanying lesson plans and worksheets at http://scratched.media.mit.edu/ And if your child is interested in things on the hardware side as well, there are some great toys out there like Little Bits http://littlebits.cc/ and Makey Makey http://makeymakey.com/

(I am also an instructor at NYCDA - Hi Zach! Hope you don't mind I hijacked this question! :-) )

nycdazach1 karma

Not at all Nicole! Thanks for hopping in =D

To people like @Juplay asking about women who code - Nicole is an amazing example! She teaches our Front End 101 course and tackles all things JavaScript/HTML5/CSS3.

nycdazach1 karma

Hi DS, great question. We should be launching some in person courses starting in the fall for students that are that young so be on the lookout!

Otherwise, there's a ton of great resources to start your child on "The Path to Code Enlightenment" as my old CTO used to say. I'd recommend they check out live REPL sites like Codecademy and Team Treehouse. There's also no substitute for in-person interaction when learning to code so I'd look for groups in your area that are teaching children to code. In Brooklyn there's Pixel Academy for children that are quite young and if you could find something similar in your area I'd highly recommend it. Good luck! I started coding in the 4th grade during indoor recess on the one Mac in the class =)

dildosmith2 karma

[deleted]

nycdazach2 karma

You're quite welcome. Good luck to you and your child, DS!

RadiantActive2 karma

Whats the best place to start?

nycdazach4 karma

Hi RadiantActive for this question I'd recommend checking out my article on Entrepreneur.com that answers a very similar question, "I'm excited to learn how to code, but there are so many different languages – where do I begin?". Happy to elaborate if you have any follow up questions!

nooron2 karma

Hey Zach! Thanks for joining us. My question is about the emotional rollercoaster of coding.

I took a couple semesters in college and I'm preparing to go to i-school in the fall to study UI/UX-oriented development more rigorously. A lot of my friends who are full-time (and well-compensated) devs smoke weed to reduce the anxiety and tedium of coding. I'm more interested in mindfulness and other strategies though.

What do you recommend for taking a step back and not breaking your keyboard?

nycdazach1 karma

Hi Nooron, my pleasure.

It can be hard to focus if you spend too many hours at the keyboard for sure. What I like to do is make sure that I'm spending time away on the weekend! I enjoy camping, hiking, checking out concerts, etc. I've been asked to volunteer for two weekend days and had to decline because if I work on the weekend too then I'm basically about to explode by Friday. Not that I don't want to help out of course.

TL; DR; Spend time in the great outdoors away from technology!

maurken2 karma

Do you have any success stories you can share of past students who have gone on to do cool things with their coding degrees? And, do you think this is something that someone with a full time job can learn while working?

nycdazach1 karma

Hi Maurken, we do have some success stories to share. The one thing we tell our students to keep in mind is that taking our courses is not a guarantee that a day later, you will get a $300K job in the industry, that would be ridiculous. However, we provide a very solid foundation to get your coding journey started on! Keeping that in mind, we've had several students go on to get jobs at startups as Rails/Front-End/Full-stack developers, typically a few months after taking the program. Some people go a different route and have gotten gigs as product managers. Other graduates have built their own apps/companies and are currently working on getting them off the ground. Still others just took the course to supplement their skills and have stayed in the careers they had when they started the program, with a much deeper understanding of technology and the web.

I do believe that you can learn this with a full time job - however, like anything in life, programming takes a lot of time to get down and even longer to get really good at. Some of our students have quit their full time jobs to take our intensive course and they work on the nights and weekends on projects to increase their depth of understanding. It really depends on the student though as to how long it will take you to have enough knowledge to commit production-worthy code. The ones who really want it work tirelessly until they're at that point.

However, all of the examples I gave above of what students have done after taking courses at NYCDA were for our evening students =). More good stories to come once our first intensive is complete in late August!

herennius2 karma

So is the goal really to get someone to learn to code in a specific programming language (with all the limitations/nuances of that language) or to get that person to understand the fundamentals of procedural logic (which might then be applied to the study of any number of languages)?

nycdazach2 karma

Hi herennius - great question. The goal is a little bit of both, but mostly the first one. We are a school that provides people with practical, real-world skills. So our courses focus on an area of technology and/or design that students can actually use the moment they graduate.

For instance, our Web Development 100 course teaches the basics of front end (HTML, CSS, JavaScript) and back-end (Ruby, Sinatra) development in 8 weeks, meeting twice a week for 3 hours. It's a very intense course but when they are done, students can construct a basic web application and understand exactly what the back and front end are. This way they can not only build useful applications, but also make informed choices on which courses they could take or technologies they could learn to do even more.

BrooklynBound222 karma

How would you suggest that I incorporate learning code, although i work a full-time job?

nycdazach2 karma

Pick it up on the side and start with the basics! Try creating a basic HTML/CSS web page and go from there. If you like that, try Ruby! Basically, programming is going to have you banging your head against the wall a lot. When you get frustrated, take a step back and look at the problem you're trying to solve with a pair of fresh eyes a little later. Since you already have a job, you're not in a rush so take your time and enjoy the journey!

MyWorkThrowawayShhhh1 karma

I have a full time job, but I'm looking to supplement it. How can I make some money part-time with programming?

nycdazach1 karma

Do you have any programming experience at all?

MyWorkThrowawayShhhh1 karma

Yes I'm learning some Python and have a very basic knowledge of HTML and CSS

nycdazach2 karma

Cool. I think you could do some freelancing! Why not try to find a friend or local business in need of a website and give them a nice rate since you're still learning? Rinse, repeat!

dangerdark1 karma

I'm 34 years old. I have some minor coding experience (Java) from college. My bachelors degree isn't worth the electricity used to print it.

1) Could I still gain enough practical knowledge to get a job?
2) Would anyone hire anyone who is in the mid 30s and a "rookie"?
3) What discipline should I look into if I'm looking for job security? I'm thinking something along the lines of networking/databases/"cloud" storage.

I'm currently unemployed so if you have any guidance that would be swell.

nycdazach2 karma

Hi dangerdark,

1) Yes, if you work hard! Thought it may take a while.

2) Definitely! As long as you prove that you can write production-ready code.

3) If you're a competent developer who is constantly learning, then you should be fine as things currently stand. I would look into learning JavaScript frameworks really well like Backbone.js and Angular.js. They're getting more and more popular! But you have to be ready for things to change as they move quickly - however, it's usually just different dressing on the same mannequin if you know what I mean.

Good luck my friend!

dangerdark1 karma

Well that makes me want to blow my brains out a little less. Thanks, champ.

nycdazach2 karma

The one thing I can promise you is that no matter what, it's not going to be worth blowing your brains out. I enjoy jumping off cliffs...into water! Give it a go sometime, gives you the liberating feeling without the mess. Feel free to PM me if you need someone to talk to =).

mother_of_corgis1 karma

CORGIS OR PUGS?

nycdazach1 karma

I'm going to have to go with, "100 Duck-sized Horses"!

XiejaminBen1 karma

How would somebody with a CS degree fit in with your classes?

nycdazach1 karma

Good question XB! Students with a CS degree are uniquely qualified for our classes. Sometimes a CS degree can be a bit more theoretical than practical and we find that our classes can help fill in that gap. For instance, you may learn about tree sorts but may not learn about building web applications with frameworks like Rails and AngularJS. We view our courses, especially the 101 and 102 level courses, as a great supplement to a CS education. We also offer a course in UI/UX design, a topic not usually studied in depth by CS students.

qwop99351 karma

I'm not a professional web designer, but do web design as a hobby. I have a good knowledge of HTML and CSS, a working knowledge of PHP and MySQL (self-taught, but enough to build my site's backend and database and keep it running), and I can read but not really write javascript. I learnt most of this stuff in around 2007 and before, when this was all you needed to build a website. Nowadays, it seems like most sites also use newer technology - HTML5, javascript all over the place, etc. Which of these would be useful to learn to supplement my knowledge and build a better website, and which are less useful or just fads? (Re: fads, I'm thinking of things like the ridiculous trend for Flash-only websites, which have thankfully gone the same way as frames.)

nycdazach1 karma

Hi QWOP! I think you should learn JavaScript much better. Learn about prototypes, constructor functions, object oriented JavaScript. Then learn a framework like Backbone or AngularJS. This should set you up nicely!

qwop99351 karma

Thank you for the advice!

nycdazach1 karma

You're welcome QWOP!

iamjacksprofile0 karma

Will learning to code help me score with the ladies?

nycdazach2 karma

If you have to ask that, then probably not =)