Friday, February 2, 2018

Better Ways to Learn

A colleague of mine wrote this and I thought it was well done so I wanted to share here:


"This won't come as news to anybody: The world is changing at an incredibly rapid pace. And the web industry is no exception.
Anyone remember using Dreamweaver to code OBJECT and EMBED tags inside of HTML tables? That wasn’t all that long ago. With the constant and rapid change in this industry it introduces a new reality:

The reality: We can't keep up with it all.
The question: How do we as developers continue in our careers knowing this?

There are too many areas that change too quickly for the answer to simply be "Study harder".
We are all feeling that reality. I asked developers at Cardinal what the most challenging thing about keeping up with our industry is. The rate of change and lack of time to really dig in were common threads.

“The rapid turnover of Javascript frameworks & libraries. In the front end world, today’s cutting tools are tomorrow’s outdated trash” – James, Cincinnati, OH

“Finding focus. There are too many paths to follow anymore, so becoming an expert in one thing is getting more difficult” – Sarah, Cincinnati, OH

“It continually evolves” – Kent, Charlotte, NC

The solution: “Learn Smarter.”
Finding information to learn about a topic isn’t our problem. We can get any type of information we want in any format that we want it. It’s more a matter of choosing WHAT to learn (over feeling like you have to know everything), being intentional about it, and engaging your local (and global) community.

So what does this look like in practice?

Go Deeper Rather Than Wider
A developer who knows just enough to be dangerous in 15 different languages and frameworks probably (and yes, there are exceptions everywhere) isn't going to have the knowledge to truly architect a solution and efficiently work through the complexities of a given project.
Pick a "stack" (a related group of languages and frameworks) and focus on deep diving in a couple related technologies in that stack. As a Front End Developer, my primary stack is HTML, CSS and Javascript.

I chose this stack because it had been what I been working with the most and really enjoyed. How you make the choice is up to you. Keep an ear towards industry trends so as not to pick a stack that's completely outdated. Now is probably not the time to pick up Flash. Read some articles, see what people are presenting on at conferences, talk to other developers. Within each stack you'll have some related technologies that come with it. Once again, keep an ear towards industry trends and choose wisely. Based on these criteria, I also use and make a point to spend time learning more about:
· Sass (pre-processing language for CSS)
· React (a front-end Javascript framework)
· Angular (a front-end Javascript framework)

Not just learning syntax and features, but even going into how these are architected, the lower-level features, etc.

Now sure, there are other related tools and technologies I use to get work done (Gulp, npm, Bootstrap, etc.) but I don't deep dive on those. I learn what I need to know at the time and move on. It's perfectly OK to look at a technology and put it on the backburner or only casually use it instead of thinking you have to start learning it if it doesn’t fit in your stack. You don’t have to learn everything.
Will the items in your stack change? Definitely. By keeping it more focused you're just swapping out blocks here and there instead of knocking it over and starting again.

Be Intentional About Learning
We all have different methods of learning. I asked developers at Cardinal to rank a few different methods of learning on a scale from 1-4 with 1 being they don’t learn best that way and 4 being they learn best that way.

“Trial by fire” mode was ranked highest while “Pulling down a sample project and looking at the code” was a close second. Unsurprisingly, “Reading a book about a technology” was ranked the highest by only 20% of developers (we all know most developers don’t read unless its documentation, and let’s be honest…sometimes not even then).

Make learning a habit. It should be like brushing your teeth. We (hopefully!) make time for that and learning should be the same.

If your company doesn't give you time for learning each week, ask for it. Chances are, they will be impressed by your willingness to learn. If that's not possible, take a few minutes in the morning or at lunch every day to read an article or catch up some posts.

Nearly half of the developers I asked used blogs, which are easy to schedule time in to read, as a primary way of keeping up with our industry.

I am thankful to be at a place that places a high priority on letting developers learn. From regular lunch and learns, to reimbursements for conferences and learning materials, Cardinal is very intentional about helping us stay sharp as developers.

This can (and should) extend beyond office hours as well. Almost half of developers I asked at Cardinal said they spent 4-7 hours a week towards learning outside of work.

As we accept this state of constant learning as just a part of our job description, this intentionality gets easier. This way, as things change, which we know they will, it gets easier for our minds to make that leap and not feel overwhelmed.

Be An Active Part of the Community
I'll admit, when I first started as a developer (in the days before Facebook, if you can imagine) I was pretty anti-social. Just put me in a dark room to write some code and leave me alone. I still prefer my work area dark, but have come to realize that we weren't designed to go it alone.

When we help others learn and others help us, we grow as developers. It helps to realize that we’re all in the same boat so why not help someone else out? You're not the only one that has things to learn or skills to offer.

A great example of this: One day I asked a question on Slack about some code I was struggling with. Within 15 minutes I had two different answers from another developer in our office here in Raleigh and a developer in our Ohio office. That's the community coming together to help one another.

This sounds great in theory, but we all have work to do and deadlines are tight. While social media has definitely made this easier, there are other practical ways to accomplish:

· Participate in a local meetup or user group in your area. Odds are there is a developer meetup for your stack in your area. Can't find one? Start one! At Cardinal, we have Guilds for various areas of development which act as kind of an internal meetup.

· Have a few spare minutes? Instead of Facebook, answer some questions on Stack Overflow. Or post a question to add to your own knowledge.

· While attending a big conference would be awesome, there are typically smaller events within a few hours drive you could attend where you could expand your network. Or volunteer for one (and sometimes when you’re not working they’ll let you attend the sessions for free!)

Change is the only constant in our industry and it's definitely not slowing down. We can't learn it all, but by staying focused, learning smarter and learning together developers can ride this wave instead of letting it crash over us. 

Monday, January 29, 2018

First game in nearly 2 years covered

You can read up on it at Sports Channel 8 here: https://www.sportschannel8.com/sports/

Monday, January 15, 2018

Welcome Back

I plan on reviving the blog for the remainder of the basketball season if all goes as planned.

Monday, March 2, 2015

All-ACC 2015: Finalists with Advanced Stats

Player eFG% ORB% DRB% TRB% AST% STL% BLK% TOV% USG% ORtg
Olivier Hanlan 0.576 1.6 11.8 6.7 28.3 1.2 0 11.4 30.7 118.2
Terry Rozier 0.447 3 12.8 7.9 20.3 3 0.4 9.2 29.5 107.3
Xavier Rathan-Mayes 0.476 1.5 10.3 6.1 27.6 2.2 0 15.2 27.6 102.6
Jahlil Okafor 0.641 17 18.7 17.9 9.8 1.5 4 16.5 26.8 119.2
Rakeem Christmas 0.522 9.3 20 14.5 10.8 1.9 8.3 14.8 26.5 108.8
Jamel Artis 0.558 8.4 17.6 12.7 17.7 1.5 1.1 11.5 25.3 121.3
Malcolm Brogdon 0.483 1.6 13.9 7.9 17.1 1.8 1.6 9.7 25.1 112.5
Anthony Gill 0.542 15.9 17.3 16.6 8.2 1.6 1.6 11.8 25.1 118.8
Marcus Georges-Hunt 0.484 7.2 14.7 10.7 15.6 2.5 0.8 13.8 24.8 112
Brice Johnson 0.604 11.8 25.9 19.2 7.7 1.3 4.5 9.6 24.4 124.8
Jerian Grant 0.519 0.8 7.3 4.2 35.8 3.4 1.9 15.1 24.3 119
Jaron Blossomgame 0.542 9 21 15.1 5.3 2 1.4 13.4 23.9 112.4
Trevor Lacey 0.52 1.5 12 6.6 20.4 1.1 0.9 11.1 22.8 114.9
Michael Young 0.51 11 15.9 13.3 7.8 1.3 3 6.9 22.3 122.7
Justise Winslow 0.544 4.7 19.3 12.4 10.7 2.1 3.1 12.8 21.9 113.5
Montrezl Harrell 0.565 9.6 19.1 14.4 7.1 1.7 4.2 12.2 21.7 114.3
Sheldon McClellan 0.566 1.8 12.5 7.1 12.6 1.7 0.8 8.8 21.4 121.6
Michael Gbinije 0.566 3.9 12.7 8.2 22.7 3.2 1.3 14.3 20.8 113
Quinn Cook 0.566 1.4 9.6 5.7 13.2 1.4 0.2 8.9 20.7 128.4
Marcus Paige 0.545 1.8 10.4 6.3 25.4 2.7 0.8 12.9 19.4 122.5
Tyus Jones 0.469 2.3 8.9 5.8 28.6 1.9 0.3 18.8 18.9 115.7
Tonye Jekiri 0.513 13.4 29.4 21.4 4.8 1.6 5.2 13.5 17.6 113.7
London Perrantes 0.495 0.5 9.2 5 28.5 1.6 1 15.7 16.3 111.4
Thanks for reading!

Friday, November 7, 2014

Short Announcement

In order to not bury the lede - I will not be covering basketball games this season or any NC State athletics in the foreseeable future.

My wife and I are expecting twin girls in the spring, and while my initial plan was to cover basketball this season and then hang it up, I've certainly learned the past couple of months that the easiest way to make God laugh is to tell him your plans. So while it wasn't how I mapped things out, I've hit the end of the road as any sort of reporter/journalist.

Ultimately this makes very little difference to anyone whose followed my work for the past few months - I've basically been done already. This is just rubber stamping. I still intend to write some for Backing the Pack, as long as Steven lets me hang around over there, but as someone whose been covering NC State athletics in some capacity since 2002 it will be a very strange thing to not be at PNC Arena - or anywhere else - this year. I will also still be doing some TV writing for Raleigh & Company, if that's your thing. But I think there should be a clear divide between someone who covers a team - who actually gathers the information the rest of us dissect - and someone who doesn't, so I wanted to make clear my crossing of that threshold.

I have been immeasurably lucky to have been able to do this for over a decade as nothing more than a very much part-time writer. While I have seen many great (and many gut-wrenching) games, the real fun of the gig was always the relationships and interactions I have formed along the way. Sports writing full time is a largely thankless, grinding experience that gets harder and harder every year as team continue to circle the wagons and control the message. Despite all the barriers being put in place, they keep working because they love sports and love telling stories. And I will greatly miss being part of that community, even in the small role I had.

There are so, so many people who have supported me and helped me that there is absolutely no way I could properly thank all of you in this piece. But even if all you've done is read my work occasionally. It's been awesome.

Monday, March 3, 2014

All-ACC: 20 Finalists with Advanced Stats

This is my personal list of the 20 most deserving players for All-ACC consideration. This is, as always, just one man's opinion.

I've provided some general advanced stats for each player, using only ACC play. You'll notice no per game stats here because I want to be tempo neutral to even out the discrepancy between how UNC plays and how Virginia or Syracuse play.

I initially had Win Shares included here for those that wanted to judge based on not only value to the team but value to overall wins, but to me those numbers made no sense (Eric Atkins was in the top five, as was Rion Brown), so I ditched them. Good job, good effort Win Shares but you aren't there yet.

These are mostly offensive stats, with some basic defensive stuff like defensive rebounding, steals and blocks.

Note: All columns are sortable just click on the header

Player eFG% ORB% DRB% TRB% AST% STL% BLK% TOV% USG% ORtg
T.J. Warren 0.553 10.2 10 10.1 7.1 3.2 1.9 11.2 35.5 112.8
Jabari Parker 0.473 14.6 23.6 19 5.7 2.0 4.6 13.1 31.4 109.5
Lamar Patterson 0.477 4.1 13.1 8.7 29.9 2.7 1 14.8 30.4 109.7
K.J. McDaniels 0.484 9.4 15.6 12.6 12.4 2.3 8.2 13.6 28.5 110.8
C.J. Fair 0.435 4.5 16.4 10.3 6.2 1.5 2.9 9.3 26.4 101.4
Olivier Hanlan 0.53 1.5 8.8 5.3 19.3 1.3 0.3 12.5 26.2 118.2
James M. McAdoo 0.466 11.5 15.4 13.5 10.7 2.2 2.7 8.8 25.3 105.8
Rion Brown 0.529 4.1 14.7 9.4 12.4 1.1 0.6 7.3 25.1 119
Aaron Thomas 0.489 4.4 11.4 8.2 13 1.9 0.8 12.7 24.1 116.3
Dezmine Wells 0.515 2.3 10.7 6.5 15.9 2.2 1.8 16 23.9 116.4
Malcolm Brogdon 0.511 4.3 16.9 10.8 21.1 2.7 0.2 7.2 23.6 128.7
Rodney Hood 0.538 1.9 10.5 6.1 12.8 1.4 0.7 8.9 23.5 117.3
Joe Harris 0.528 2.2 7.6 5 21.5 2.9 1.3 8.1 23.3 118.5
Seth Allen 0.509 2.3 6.1 4.2 21 1.8 0.9 13 23.1 111.6
Okaro White 0.541 7.8 15.9 12.2 5 1.6 3.7 12.9 21.9 119.5
Eric Atkins 0.502 2.6 5 3.8 25.4 1.8 0.5 12.5 21.8 110.4
Talib Zanna 0.538 14.6 19.8 17.2 2.3 1.2 3.3 12.5 21.6 121
Marcus Paige 0.519 1.2 7.6 4.4 25.4 2.5 0.5 12.8 21.3 119.4
Tyler Ennis 0.456 2.5 8.3 5.3 31.4 2.7 0.7 14.1 21.1 112.3


Traditional Stats 

Just for comparison's sake

Player FG% 2P% 3P% FT% TRB AST STL BLK TOV PTS
T.J. Warren 0.519 0.556 0.357 0.68 6.1 0.9 1.8 0.6 2.7 24.5
Olivier Hanlan 0.449 0.518 0.364 0.814 3 2.9 0.8 0.1 2.1 17.8
Lamar Patterson 0.395 0.42 0.364 0.747 4.8 4.6 1.5 0.3 2.9 17.5
K.J. McDaniels 0.444 0.532 0.254 0.818 7.6 1.6 1.2 2.7 2.5 17.1
Jabari Parker 0.441 0.485 0.286 0.718 9.7 0.8 1.0 1.4 2.4 16.9
C.J. Fair 0.414 0.443 0.262 0.71 6.7 1.1 0.9 0.8 1.8 16.2
Rion Brown 0.438 0.529 0.352 0.721 5.5 1.6 0.6 0.2 1.1 15.9
Marcus Paige 0.42 0.46 0.383 0.828 2.9 4.9 1.5 0.2 2.1 15.8
Rodney Hood 0.441 0.457 0.423 0.778 3.4 2.1 0.8 0.2 1.4 15.5
Dezmine Wells 0.494 0.549 0.241 0.823 3.6 2.4 1.2 0.5 2.4 15.3
Malcolm Brogdon 0.452 0.463 0.423 0.903 5.8 3 1.4 0.1 1 15
Aaron Thomas 0.422 0.425 0.417 0.866 4.6 2 1.1 0.2 1.9 14.9
Eric Atkins 0.425 0.488 0.347 0.62 2.4 5.1 1.1 0.2 2 14.4
James M. McAdoo 0.466 0.466 0.47 7.6 1.6 1.2 0.8 1.4 13.8
Okaro White 0.514 0.581 0.258 0.767 6.4 0.7 0.8 1.1 1.6 13.3
Talib Zanna 0.538 0.543 0 0.659 8.8 0.4 0.6 0.9 1.6 13.1
Seth Allen 0.4 0.457 0.362 0.756 2.3 3 0.9 0.3 1.8 13.1
Tyler Ennis 0.415 0.43 0.366 0.75 3.4 5.7 1.5 0.2 2.1 12.6
Joe Harris 0.405 0.368 0.433 0.617 2.2 2.6 1.2 0.3 0.9 11.5