I ran across this site and thought it was an interesting concept. It provides a learning path for AngularJS. I already know Angular so I didn’t go through the content, but it looks useful for someone who is trying to learn and don’t know where to start.
That’s right, I finally released a video version of one of my more popular code camp talks. The online education industry is booming and it’s already made millionaires. You can get in and take advantage starting today. In this video I show you what you need and give you some tips on how to do it based on my experience.
Check it out and let me know what you think, even you think it sucks.
Subscribe to c0deporn on YouTube http://www.youtube.com/c0deporn
I’ve been writing code since I was 11. That’s going on 21 years. I started off with an old Packard Bell 286 with Dos 3.22. I learned all the commands in just over a week. I was getting bored with nothing else to do and I wondered how I could make the computer do what I wanted it to do. I called my uncle and he told me to look into something called C++.
I went down to the bookstore (OK, I got a ride from my grandpa) and picked out “C for Dummies”. My grandma was more than happy to buy it for me. I immediately started reading it when I got home. Unfortunately for me, I had to write code on paper for a little over a year and compile it in my head. Eventually I got an upgrade, a custom built 386 with Windows 3.11 and I was able to grab Turbo C from a BBS (Bulletin Board System). Finally! I could compile and run my “Goodbye, cruel world!” program (the “for Dummies” version of “Hello, World”). Bliss!
From there I wrote all kinds of programs. I spent 18 hours a day writing code during the summer and almost as many hours during the school year. I dabbled in graphics, manually drawing pixels on the screen and then eventually using the Allegro library. I tried to move to C++ but I really wanted to build GUI’s and move away from DOS.
I started doing DHTML with VB6 but not for long because I went over to Active Server Pages (Classic ASP for you kids). One day while working on an eCommerce site for a company, a customer called in with a problem. During the conversation he asked me why wasn’t I building the site in PHP? That day I went to Barnes and Noble and got a shiny new PHP book. It was awesome! The very next day I started converting the entire site to PHP & MySQL (with the boss’s permission of course). I wrote PHP up until around 2007 (when I finally learned about ASP.NET).
Having always wanted to make a games, I started back up with C++ and OpenGL. I spent a lot of time on NeHe.gamedev.net (in fact, I still have some code over there). I built quite a few things but nothing that I ever finished. No idea why, but I just never did. ADD maybe?
Anyone remember Planet-Source-Code.com? I spent years posting code to that site. Won several awards too (6 to be exact).
Around 2004 I decided that I wanted to build applications with updated visuals and VB6 was looking dated. I got a copy of Visual Studio.NET (That’s VS 2003) and quickly realized VB6 didn’t jive. Back to the book store. I ended up getting C# for dummies and blowing through that in a week. I had done MFC in Visual Studio 6 and I was a bit hesitant that C# would have a similar experience. Thankfully I was wrong.
I started working as a developer for a company that used ASP.NET. Not long after I realized that I was a jack-of-all trades and it was seriously hindering my learning and growth. Trying to keep up with multiple technologies & stacks as well as the IT side of things (yes, I spent a lot of time as a tech doing IT work). I decided that I would only bother with being a developer and my focus would be the Microsoft stack.
I skyrocketed from that point on. I advanced in so many ways. I was lucky enough to have a really good .NET developer mentor me. He helped me realize that code isn’t just code and that consideration has to go into what you write and how you write it. I was becoming a real developer.
Shortly after, .NET 3.5 came out and holy crap! I was in heaven! Linq, WCF, WF, WPF, etc, etc. I learned them all and it didn’t stop there. I learned about MVC and started playing with it (staring with beta 4 when it still had code behind!) and my world was changed. I grasped it immediately. Throw Entity Framework in there and I was ecstatic to be developing software.
I had heard about user groups and nerd dinners from a developer friend and finally decided to check them out. I started attending the Inland Empire User’s group. Wow! An entire room full of eager and talented developers. It was like a utopia. I met and befriended many great people. I was awarded Most Valuable Member 3 years in a row. Today I am on the board of directors for the group.
The user group is how my public speaking was started. I gave a presentation on RedGate’s Ants profiler in exchange for a free licence. It was scary but exhilarating and I went on to do more talks at different events. The first time I ever attended a code camp down in San Diego, I presented two sessions. This snowballed into 22 talks around Southern California in 2011 alone.
A software company from Europe heard that I was presenting on their product and contacted me to sponsor my talks. I ended up evangelizing for them for some time. I still do.
I was getting noticed in the community. People knew my name and I didn’t know them first. It was strange but exciting. Then Pluralsight contacted me and asked me to do a course for them. Of course I will! I felt elite being among talent like John Papa, Scott Allen and John Sonmez. I ended up doing 3 courses for them (you can watch for free if you want, just email me).
All of this caught the attention of Microsoft and I was awarded an MVP (Most Valuable Professional). I’ve been renewed twice and I’m hoping to be renewed for the 3rd time this April. I felt like I had arrived.
And that’s when things started going south.
Things in the community were great. My career was moving along on the fast track as well. I frequently changed companies and hustled my skills to get where I wanted to be. My goal was never to work for a prestigious company like Microsoft or Google (although I wouldn’t mind), but to earn a specific annual dollar amount. In only a few short years I achieved that goal and today I’ve achieved near double. I have an income and lifestyle that provides comfort and plenty of extras for me and my family.
So I’ve come to a point where I feel like I have arrived. I’ve accomplished my career goals. People recognize me. Twice I’ve interviewed with someone who had watched one of my Pluralsight courses. Who wouldn’t think that’s awesome? Heck, I never have to look for a job. I rarely have to interview beyond meeting the management. But what does it all mean? What is it worth?
I find it increasingly difficult to get excited about development and code like I used to. Except for running some automated tasks, my workstation at home sits idle. My laptops have dead batteries and my Surface is used as a decoration.
All I think about is retiring and changing careers and I’m only 32 years old (in August). While I have other skill-sets, none of them are good enough to earn an equivalent income. I’ve burned out a few times before and I’ve taken a hiatus, but I’ve been able to find something to reignite that spark. I’ve been trying for 6 months to find that thing to being me back, but nothing.
I feel like I’m in some kind of limbo. How do I get out? As someone who naturally grasps development, code and concepts I find it depressing that I’ve lost the drive to do it.
Where do I go from here?
I often get strange looks when I tell companies that I consult with that as part of their development standards, they should define a vocabulary list for both the department and per project. “Are we going to have a spelling test?” they ask. All joking aside, I explain to them that the more people involved in a project the more chance there is for misunderstanding, especially when it comes to the definition of a term.
A vocabulary list is an important communication tool that is a single, unambiguous source of definitions for common and uncommon words, terms and phrases used when discussing a project (or specific to the company’s domain). This prevents arguments and confusion between team members, developers and management and management and clients.
I once spent 30 minutes arguing with a developer about the exact same point. He said we should be doing X and I said we should be doing Y. Finally I asked him to define X and yeah, we wasted 30 minutes. A simple vocabulary list would have prevented that.
A recent example I ran into was with an offshore team. I’m working with them to implement promotions on a mobile app for my client. A request from marketing was to make sure the mobile promotions always pulled the latest product retail price from the pricing database. Simple enough, yes?
When I told the offshore team lead that we should can not use the retail price from the promotion definition (which was a static XML file) because it could be out-dated, the fun started. He was trying to determine where to get the retail price. “Ok, I will display the product cost from the Cost column”. Cost? Why the cost? The cost is what we, the vendor, pay for the item when we purchase it for our inventory. To him it looked as if that was the cost for the customer.
Next he said “Ok, then I can use the sale price”. “No, not the sale price” I said. “That’s the discounted price for the promotion”. Sale in this case meant, “This product is on sale at a discounted price”. He thought it meant it was what the product was selling for since the product was “for sale” and not “on sale”.
Finally I said to just use the retail price. “Retail” was a word not familiar with him (I assume it’s a translation thing?). Retail, I explained, is the original price that the product would be listed for on the website. The price that customers would normally have to pay to purchase the item.
Do you see the potential for confusion which in this case could have cost my client money? Simple terms such as Sale and Cost can easily be misinterpreted because they are ambiguous, or not understood at all as in the case of ‘Retail’. A developer following a spec may very well think he is on the right path when in fact he is way off.
What do you think? Discuss this on Hacker News
Yep! To celebrate my new site, c0deporn.com, I’m giving you a chance to watch 1, 2 or all 3 of my Pluralsight courses for free. If you don’t already have a Pluralsight subscription, send me an email and tell me a bit about yourself. I’ll send you a 1-week subscription card in return.
Send email to email@example.com
This course introduces T4, Microsoft’s code generation tool that comes with Visual Studio. The Text Template Transformation Toolkit dynamically produces text of any type and is used for code and document generation. Discover how to reduce development time, bugs and maintenance by building reusable templates. This course covers T4 template building blocks, extending templates with custom functionality and debugging the template execution process. MVC and Entity Framework, among others, can be customized and extended through T4 templates. This course covers how to customize MVC controllers using the default templates and the MVCScaffolding package, and customizing entities by adding validation attributes. Top it off with real world uses of T4 including generating, and automatically synchronizing, code based on external resources, and combining T4 with other technologies to produce powerful templates.
Building Extensible Applications with MEF (Managed Extensibility Framework)
In this course, you’ll learn about MEF, Microsoft’s answer to the runtime extensibility problem of today’s applications, and how to implement it into your existing applications. What is MEF? How does it work? Should you replace your existing IoC solution with MEF? We’ll answer these questions and more throughout this course. For existing users of MEF, we also cover troubleshooting and debugging parts.
Ruby on Rails – A Jumpstart for .NET Developers
This course is for .NET developers who want to try out Ruby on Rails without investing a significant amount of time into learning both Ruby and the Rails framework. In this course, we walk through what Ruby and Rails are, how they compare to .NET languages like C# and VB. After a brief introduction to the Ruby language, we jump into building a Rails application and customizing it.
I’ve been pretty busy in recent months, but I’ve finally released my Ruby on Rails course. This course is geared at existing .NET developers who want to see what Ruby & Rails is like, but don’t want to invest the time to learn either. In this course, we go through just enough ruby to get you going and build a Rails applications as quickly as possible, with as little effort as we can get away with. You’ll leanr just enough to get yourself into trouble.
The best part is, I’ll let you check it out for free! For those who currently do not have a subscription to Pluralsight, I’ll give you a 1-week subscription so you can check out my Ruby on Rails course. Send me an email with your name, twitter and what you normally develop with and I’ll send back a subscription.
Send email to firstname.lastname@example.org
Supplies are limited though!
Last week was my first week at my new gig. I work from home full time now. I always hear developers saying they would love to work from home. Granted, it does have its advantages but it isn’t always as great as it seems to be. It isn’t like taking a day off from the office to telecommute (usually I play xbox on these days). Working from home full time requires discipline. Not yet sure if I have it, but it seems to be going ok.
The following are a few tips I found that make things easier for me to work from home and stay disciplined.
Leave for work (Mentally)
When you work from home you have to separate your home life from work life. Even though your office/cubicle is now located in your home, you still have to check out of home mode when you start your shift. Kids, the wife and/or girlfriends should be made aware that even though you are physically accessible you should be treated as if you’re not actually there. It can be hard, but eventually they will get it.
On the flip side, you must also remember that even though the xbox is only a few feet away in the other room, you’re at work and not at home. The exception to this is the kitchen :D
Leave for work (Physically)
Working from home doesn’t have to mean working from home. I recommend renting a small office space somewhere so that it’s easier to separate home and work life. This is especially beneficial to those with small homes or potentially disruptive households.
I have a pretty big house so space isn’t an issue for me. If you are lucky enough to have a spare bedroom or a den or any room that you can go into and close the door, then move your desk and computer in there and make it your office. Being able to physically isolate yourself will help keep you on track and less distracted.
Additional benefit is if you have kids and you also have to communicate with clients and/or co-workers. You can have a quiet place to conduct business.
Make your space comfortable
Just because you have a space of your own doesn’t mean it’s comfortable. You have to be in that space for 8 hours a day. Personally, I painted my office “Billiard Green” (a nice dark green), setup some soft lighting and rearranged my desk so I could see the entire room (not facing a wall). I moved all of my clutter into the closet and out of the way. I like low light settings so painting the walls a dark color and adding soft light options made a huge difference. It makes the room a place I want to be in.
Get a nice chair, get a nice desk, get some pictures or art or some of those fancy motivational posters and make your work space a place you want to spend all day in.
Stay in one place
This goes along with my previous tip. Make sure your space is comfortable so that you’re not tempted to go and work in your cozy bed or on the big Lazy Boy recliner in the living room. Stay in your space and don’t wander. If you need to “get out of the office” then go down to Starbucks and work there for a bit.
WHAT?! Yeah, follow a dress code. Everyone jokes about working from home in their underwear. To help keep you focused and in the work mindset, dress like you would normally going into an office. I don’t allow shoes on the carpet, but I make an exception when I’m “at work”. I wear business casual clothes (or sometimes shorts), and I also wear my shoes. It’s really a mind trick. Make yourself feel comfortable, don’t wear a dress shirt and tie (unless you want to), but also don’t work in your boxers.
Keep a regular schedule
Just because you’re at home doesn’t mean you can’t/shouldn’t take breaks. Be sure to take regular breaks. Maybe two 15 minute breaks and an hour lunch or come up with a schedule that works for you.
When working from home it can be quite easy to fall into the habit of working more than you should. Overtime is fine if you have to get something done, but you should start at a regular time and end at a regular time as if you were in an actual office. No reason to over do it.
Tools & Communication
Be sure you have to proper tools to do your job. If you need to fax then get a fax machine or a digital fax solution. You don’t want to disrupt your day because you have to run down to Staples to send a fax.
Unless you’re stuffing and licking envelopes, you probably will need to communicate via the internet. Make sure that you have quality service. I actually have been fighting with this. I got cable service when we moved in (don’t remember why). Since we only used it for web browsing and Netflix, if it went down it wasn’t a big deal. Well last week I had to work from Starbucks because it went down. It would also go down periodically throughout the day too. It makes for a very annoying work experience, especially since people need to communicate with me and it’s how I do my job. I called and ordered fiber internet and made sure it comes with a 99.99% up time. I also ordered phone service so that I had a land line. Cell service in my area is unreliable. I want to make sure I can do my job and get in touch with people when I need to.
Being in a house with other people who also like to use the internet can cause some problems when they’re eating all of the bandwidth. Most routers support some level of QoS (Quality of Service). QoS basically tells the router that packets going to a certain address are “more important” and they get a higher priority. On my router I give my xbox highest priority (online gaming, Netflix) followed by my workstation. That way my Skype call gets priority over someone else watching YouTube.
These are the tips I have. Basically it boils down to making yourself comfortable but professional, and distraction free. When you go to work, go to work and forget that you’re home.
What tips do you have? What helps you work from home?