DEV Community

Ben Halpern
Ben Halpern Subscriber

Posted on

What are your programming goals for 2017?

Top comments (102)

Collapse
 
tbodt profile image
tbodt

I want to finish reading the HTML standard. I'm working on my own browser optimized for web scraping, so knowing a lot about how a browser works is important.

By the way, the HTML standard is an excellent read. About a thousand pages of clear, detailed specifications of every single detail of what a browser does. Incredibly interesting and informative.

Collapse
 
ben profile image
Ben Halpern

Fascinating. The HTML standard does look really interesting as I take a glance. I've been reading the CommonMark markdown spec myself lately. How did you first get interested in the browser project?

Collapse
 
tbodt profile image
tbodt

My company does a lot of web scraping, it's basically the entire business. Originally we were using Selenium and PhantomJS, but we started running into scaling issues. So now a scraping grid consists of 32 servers each with 8 cores and each costing hundreds of dollars a month. The servers are mostly at like 30% CPU usage. We have like 300k in free servers from various hosting companies so improving efficiency isn't too high priority, but something will have to be done eventually.

The obvious alternative to Selenium is to just make HTTP requests, but we have to crawl a lot of really crappy sites that use JavaScript for no apparent reason, and we want to be able to add a new site without spending a lot of time figuring out how to form spoof. So we're just making our own browser. It uses V8 to run JavaScript, which I had to write a Python C++ extension to do.

Admittedly it's not the most useful thing I could be doing. But it's hella fun.

Thread Thread
 
ben profile image
Ben Halpern

Well whether or not this specific activity is "useful", I'm sure you'll get a hell of a lot out of reading the whole HTML standard!

Collapse
 
oneearedmusic profile image
Erika Wiedemann

To clarify, the standard found here? html.spec.whatwg.org/multipage/

That's good to know it's a solid & clear read, I'll have to make some time to work through it.

Collapse
 
tbodt profile image
tbodt

That's the one.

Collapse
 
oneearedmusic profile image
Erika Wiedemann

1) Graduate (about to start my final semester)
2) Get a MVP version of my cooking helper app on at least 3 friends phones. V1 is for Android, and the server is written in Scala, both new for me. I recently got a copy of The Lean Startup, and hope to apply some of those ideas to the first release.

Collapse
 
matteozuccon profile image
Matteo Zuccon

Is it a native app or u use some Scala framework?
I do not have any experience with apps, I would like to know more :)

Collapse
 
oneearedmusic profile image
Erika Wiedemann

I'm intending to build a native app. Hoping to keep it simple, and make calls to a Scala API. I'm also hoping to make it so both the app & a web interface can use the same endpoints. I also don't have any experience, so this project is certainly experiment-oriented rather than launch.

Thread Thread
 
matteozuccon profile image
Matteo Zuccon

ok, good luck with that! The common REST/graphql API endpoint is a good idea.

Collapse
 
ben profile image
Ben Halpern

Lean Startup is definitely critical reading for this kind of thing. Good luck with the launch. What made you choose Scala for the server?

Collapse
 
oneearedmusic profile image
Erika Wiedemann

I'm interested in learning some functional programming, and felt this was a better option for a microservice than haskell. That's also on my to-learn list.

Thread Thread
 
mtalsmith profile image
m3talsmith

Clojure is an interesting and productive lisp. You might find the principles there intriguing as well.

Thread Thread
 
oneearedmusic profile image
Erika Wiedemann

Aah, that's great to know! I'll look into that some more - I've had coworkers apply some Clojure styles & ideas to our codebase with great results.

Collapse
 
gonzalodelgado profile image
Gonzalo
  • Write at least 3 simple games
  • Learn at least 3 new languages (already learning Haxe, want to also learn Lua, and maybe Lisp)
  • Write my own todo-list app
Collapse
 
ben profile image
Ben Halpern

Nice! What platform are you targeting for the games?

Collapse
 
gonzalodelgado profile image
Gonzalo

The one I'm currently working on is written in Haxe, which makes it easy to port to almost any platform, so that'd be a PC (Linux, Windows, MacOS) release, and maybe Android :-)

If I learn Lua, I'll probably make another game using Lร–VE, which I believe also makes it easy to port to any PC OS.

Lastly, I want to make a game for the Uzebox :-D

Thread Thread
 
ben profile image
Ben Halpern

I've never done any game development, and feel like such an outsider that I don't even know where to start, but it's something I'd like to carve out some time to try. Any starter suggestions for a total noob?

Thread Thread
 
gonzalodelgado profile image
Gonzalo

I totally felt like that for years!

Then I stumbled upon Handmade Hero, which provided a huge inspiration.

Also, finishing any "make your own game" tutorial (HaxeFlixel's is quite good) helps a lot in motivating you to work on making a simple game of your own.

Thread Thread
 
ben profile image
Ben Halpern

I'm feeling inspired now. I think I've always thought of game development as something that was painful and tough and something to leave for other folks, but it's also so fun to be a total noob and learn something from the ground up.

I'm taking on the goal of writing one simple game this year. I'm going to start with a follow-along tutorial while I scheme the game I want to make.

๐Ÿ™Œ

Thread Thread
 
binaryidiot profile image
Kris Siegel

@ben , what language(s) do you know best? Looks like from your Github page you use a lot of JavaScript and Ruby. You can do game dev in both of those! In fact using the canvas to create basic games isn't super difficult once you get used to it.

Most platforms / frameworks will provide you with an update and a render loop (or some sort of abstraction over one). Basically render paints whatever items that should be drawn and nothing else (no calculations unless absolutely necessary) and update is where you do all your collision detection, movement, etc. So you update your character's movement in the update loop and draw wherever the character is in render.

You could even get fancy and go with webGL :)

Thread Thread
 
ben profile image
Ben Halpern

I mostly write in Ruby and JS, but I'd love to take the opportunity to do something totally different. I'd gladly take suggestions. I think I'm more concerned with tooling than language preferences, so something with good support and stable community that will allow me to have an enjoyable experience developing on my Mac.

Thread Thread
 
gonzalodelgado profile image
Gonzalo

Haxe's syntax is pretty close to Javascript, and it's easy to get it up and running on a Mac (although the homebrew install didn't work well for me, had to download it and its dependencies myself).

Also, if you're feeling extra inspired, make sure to check this out: onegameamonth.com/ ;-)

And if you're ever uninspired, reading books like The making of Prince of Persia or Masters of Doom helps a great deal with that :-)

Collapse
 
denisenepraunig profile image
Denise Nepraunig

My goals for 2017 are:

  • release an app to the app store
  • improve my #Swift skills
  • create more feminine @NERDpraunig developer t-shirts: nerdpraunig.com

In general I want to focus more on my health - I am currently reading "The Healthy Programmer.

And I want to blog again and share my very positive developer experience, like my story "From Secretary to Software Developer: the hard way" which I submitted to medium: medium.com/code-like-a-girl/from-s...

Collapse
 
ben profile image
Ben Halpern
  • Good luck with the app release process, Apple makes you jump though hoops ๐Ÿ˜’

  • I love that if/else tee!

  • Would you recommend that book so far? I'm always on the lookout for programming-related books that come in audiobook form and that one does.

  • Congrats on your journey so far, and feel free to use this platform to tell more of your story, as well as blog about Swift and share your burgeoning expertise with the language.

Collapse
 
eljayadobe profile image
Eljay-Adobe

2018 checking in. How did 2017 go?

Collapse
 
tanyapowell profile image
๐ŸŒŸt powell ๐ŸŒŸ

I have a few small attainable goals for 2017

  • Blog more about dev life
  • Contribute to more #opensource projects
  • Tweet more ๐Ÿ˜œ
  • Finish off a couple of personal projects
  • Have a play with vue.js (I've heard so many great things)
Collapse
 
ben profile image
Ben Halpern

What are the personal projects?

Collapse
 
kwelch profile image
Kyle Welch

My biggest goal for 2017 is to be more engaged in the community. I hope to do so by blogging experiences, speaking at conferences and meetups, and more contributions to open source.

This past year I have dipped my toe on some of these but I want to submerge myself and commit to it.

Collapse
 
ben profile image
Ben Halpern

And I think you're doing a great job with it, and as you know, Jess and I are here to help you make the most of our channels.

May I ask why you decided to make this a focus? Have you tried to deliberately do much of this stuff in the past?

Collapse
 
kwelch profile image
Kyle Welch

Open source is something I attempted before but I consistently felt I was not good enough to take on any of the issues and didn't dedicate enough time to it. After attending my first conference (since HS), I found my place or to put it better I found my passion. I took my first steps toward speaking this year on a FP panel at a local conference and also gave a talk on RRv4 at a local meet up.

I think mentoring/teaching has always been a strong point for me but it was typically focused to within the workspace. My self-awareness has gotten me past any of the imposter syndrome I had, which has me ready to share with a larger audience.

Collapse
 
cvallejosh1 profile image
Carlos

Read following books: "Passionate Programmer,Pragmatic Programmer, Effective Java, Design Patterns, Clean Code, Domain Driven Design"
Improve my development productivity
Contribute to open source in Java
Share my knowledge in blog
Get more involved in mobile dev

Collapse
 
stephaniecodes profile image
Stephanie
  • Get another dev job ASAP. It's proving more difficult to find my second job compared to my first. Seems like my 2 years of experience and immense passion/drive aren't enough. Everyone wants 3-6 years experience. :-/ I also want to move from Ruby on Rails to Javascript.

  • Speak at a conference. I've already submitted 2 proposals and hope I get one accepted.

  • Make at least 2 outfits with integrated LEDs & an arduino and coded completely in Javascript using Johnny-Five. I just started working with hardware (raspberry pi) and have gained enough confidence to tackle making wearables now.

Collapse
 
jess profile image
Jess Lee

Yay for submitting proposals!! What subjects are you looking to speak on?

Collapse
 
stephaniecodes profile image
Stephanie

Getting started w/ hardware + Building art stuff with hardware. I just started and despite feeling completely inadequate in that area, I managed to make some neat stuff & gain confidence to move onto bigger projects (like making wearables this year).

Collapse
 
tonytalkstech profile image
Tony Morris

My stated goals were to blog more, teach more, and finish a personal project. More details:

  • Blog more: I'm a firm believer in contributing to the C# and .NET communities, especially with how I work with both in my day job. How we utilize libraries and solve hard problems is something I find useful in sharing.

  • Teach more: I am a senior resource at my company. It's my goal to get my developer team members to get at or above my technical acumen and delivery skills.

  • Finish a personal project: I'm great at starting personal projects, typically ASP.NET websites. Time to finish one, hopefully before spring!

Collapse
 
ben profile image
Ben Halpern

My personal realization that finally let me get finishing was to realize that projects I'd abandoned years ago, regardless of how misguided they seemed at the time, would have been awesome had I only kept grinding away at them. Eventually it would tip and get to cruise control. But by ditching them and starting over again, I was always starting over.

So I chose a project I knew would eventually turn out awesome if I just kept at it. That's this site, and it's still a work in progress, but it's getting a bit better every week.

Collapse
 
realzedgoat profile image
zedgoat

Good observation on the finish vs restart. The other hard part about side projects is they can run over such a long timeframe that you can get demotivated by the difference in quality across components (code or otherwise). I think this can spur the temptation to start over, eg, "I'm so much better now! If I start from scratch it will be nothing but puppies and perfection!".

Catch being of course, you will continue to grow, especially if you are building things as a calling. Think the balance is to remember that if you're applying your trade you'll always be better than yesterday, so rework the critical bits (like gaping security or structural issues), and push forward to done.

Having a goal to open source something can compound this, since you know one day some bright young things are going to be lobbing entirely legitimate pull requests at your old, duct tape code from when you were first getting started.

Collapse
 
lilymercy profile image
Meheret Girma
  • Get my first full stack developer job, do what I love to do.
  • I have been writing about my coding boot camp experience for myself but never really published it as a blog. I would love to publish my experiences as a blog and encourage people to pursue their dream. -Contribute to open source project in my skills and level.
Collapse
 
jess profile image
Jess Lee

Hey Meheret! You could publish your experiences on dev.to :)
Are you done with the boot camp yet?

Collapse
 
lilymercy profile image
Meheret Girma

Hey Jess, that sounds a good idea, I think I might do that. Yes, I am done with boot camp.