All posts by Scott Salisbury

Switch Sencha Cmd Versions Any Time.

​Sometimes it is handy and necessary to change the Sencha Cmd version without having to play around with your path and hand-juggle multiple versions.

Here are some simple steps to check which version is running, see which versions you have installed and finally a step to actually change the currently running version.

​Scotts-MacBook-Pro-2016:​scottsalisbury$ sencha switch --list
Sencha Cmd 6.5.2.15
Looking for versions at: /Users/scottsalisbury/bin/Sencha/Cmd
 
Current version
   6.5.2.15
 
Newest version installed
   6.6.0.13
 
Locally available versions
   6.5.0.180
   6.1.2.15
   6.2.0.103
   6.0.2.14
   6.0.1.76
   6.5.1.240
   6.5.3.6
   6.2.1.29
   6.5.2.15
   6.1.3.42
   6.6.0.13
Scotts-MacBook-Pro-2016:​scottsalisbury$

​Scotts-MacBook-Pro-2016:​scottsalisbury$ sencha switch 6.0.1.76
Sencha Cmd 6.0.1.76
 
Successfully switched to version 6.0.1.76.
Run 'sencha help' to see the available commands on this version.
Scotts-MacBook-Pro-2016:​ scottsalisbury$

Change Font Size in Eclipse

​Here are some simple steps to change the font size in Eclipse.  You can also hit [ctrl][shift][++] to increase the font size but replaceing ++ with - - does not shrink the text.

Your Productivity Funnel & The Three Plagues of Programming

Today, I want to talk about the productivity funnel.

That is, your productivity funnel and the three plagues of programming and how to get past those obstacles. The three plagues are: procrastination, perfectionism, and distraction.

Coming right up.

There’s a whole bunch of stuff that can go in. We can observe a ton, right? But, we can only produce so much. The bottom of the filter is what you’re able to produce and the top of the filter are all the things coming in, right? Meetings, phone calls, interruptions, distractions, right? Procrastination, delays, I’m sitting here thinking about other things, I’m not getting to it, perfectionism, I’m over doing it now, the work has been done, I met the requirements from the spec standpoint and I just keep pouring myself onto it because I want it to be better, I want it to look really cool, I want to comment it to death. Perfectionism. All of these things clog the funnel here, right? Think of distractions, procrastination, and perfectionism as things that block your productivity funnel, right?

It’s really, really important to keep it clean and to focus and to weed out the things like distraction and procrastination. Procrastination is obvious, right? I’m delaying, I’m sitting here, I’m on Facebook or Twitter, or maybe I’m just researching unrelated, I’m doing something other than what I’m supposed to be doing which is to move my project forward. Remember, the deal with productivity is the more productive I am, the more successful I’m going to be so it’s so important to weed out procrastination, which is plague number one. Number two, perfectionism. Like I said, sometimes we overdo things. We overthink it, we spend way too much time with it, we know we only needed to spend this much time, somehow we spent this much time so we could make it better, and better, and better. But ultimately, the people that are paying us could care less about our perfectionism.

They just want it to work. They want it to work first time. Remember, when you’re perfecting something over and over again, you’re introducing bugs, challenges, new things that have to be QA’d so weed out the perfectionism and keep your funnel clear. The number one plague of any programmer is distraction. Of course perfectionism and procrastination are themselves distractions, but I mean ringing telephones, meetings, interruptions, lunch times. We need all of those things, but it’s our jobs as software developers to try to push those things out to the minimum that they require, right? Surfing the web, looking at the sports scores, what’s playing at the movies, do I need to bring home a gallon of milk?

All of this stuff, all of these distractions, right? It’s really important that we look at our daily schedule and we say, “From this hour to this hour, I’m not doing anything but sitting here writing code. I’m doing the central part of my job and I’m pushing out distractions.” Push email out for an hour at a time at least so you’re not constantly checking email every time it dings at you, or your phone, man. These are horrible distractions and incredibly limiting factors to your programming productivity. Remember the funnel, the blockages, and there are many, many more. But, this is a good picture, right? You can take in a lot, but you can only produce so much. The more non-productive crap you put in your funnel, the less it’s coming out and the less successful you’re going to be.

Work on eliminating procrastination, perfectionism, and distraction. I’m going to do more video on these topics, but today, that’s an introduction. Think of a funnel as your mind, a lot coming in, a little coming out. The more I limit what goes in actually the more that’s going to come out, in terms of productive programming.

That’s it. I am Scott with Motivated Code Pro.

This is your productivity funnel. Keep coming back. Like, subscribe, and hit the bell so you don’t miss any videos and I’ll see you on the next video.

5 Keys Transcript Part 6 of 6

Back to Part 6 - 5 Keys To Becoming A Successful Consultants as a Software Developer

Part 6, Key 5.

Welcome to Sales and Marketing

Transcript for Part 6 

Scott: Hey everybody. Scott here with motivatedcodepro.com. Thanks for coming back. This is video number six in a six part series about becoming a successful consultant as a software developer. Today, we’re going to talk about marketing and sales. Stay with me.
 
This last section, this final video is really entitled Welcome to Marketing and Sales. I want to say this perhaps the most difficult thing for software people, technology people in general that are really technical people often have a difficult time selling and marketing and being out there in a way that builds business. Seasoned sales people, they take … It’s like anything else. They take a long time to develop their skill. We, as software people, have taken a long time to develop ours. What’s tough about being an entrepreneur in this setting, if you’re a consultant, you have to have some selling skills. You have to be willing, let me say that. That’s a big part of it. I want to start with the word entrepreneur, which I think is I don’t care a lot for the word, but you as a self employed businessperson.
 
Remember, you are a business and your time is money and you need to treat it like money. Entrepreneur, it carries the connotation or has the connotation of being glamorous and wonderful and life is good and sports cars and fast life and all this. The truth is as entrepreneur, it’s a grind. It is late nights. It is early mornings. It is wearing a lot of hats. It is doing a lot of things to take your baby, your business, and move it forward. We’ve talked about your skills and experience. That’s almost the least of it. That’s what you’re selling, but there’s so much else that you have to be prepared for and the marketing and selling is so important. Now, so for marketing, we’ve talked quite a bit about social media throughout this series.
 
I’m not going to park there for much, but I want to just remind you that you need to be busy there. Start your blog or work with your blog, be consistent with your blog, pay attention to your YouTube channel, pay attention to my YouTube channel. These are things that you got to do from a marketing standpoint, but selling really involves getting in front of somebody or getting on the phone with somebody and having a natural conversation about why you can help your customer. That’s not an easy thing to do. Chances are if you’re a technology person that you’ve lived a life in technology if you’ve moved up through the corporate ladder at any level that you’ve had to sell lots of ideas over and over again.
 
This is an augmentation of that fact. I’ve heard a lot of people say I can’t sell. I’m not going to sell. The reason I don’t do what you’re doing, Scott, or one of the reasons is I don’t feel like I can sell and I really felt like that too when I started and I am not a natural salesperson. I’m not an expert in marketing. But, I’ve learned enough to know that I need to tend the garden of sales, so to speak, and marketing like we talked about in previous videos. I have to believe that I can sell. After 11 years, I’ve learned enough about the process and working with people outside of just the building software aspect, which is what we sell here as a company. It’s what I sold as an individual at first.
 
You need to learn to sell and at some point, you’re going to have to ask somebody for money. You’re going to have to say this is going to take nine months and it’s going to cost this much money and you need to give me this much down and all of those negotiation tactics are a subject for another video coming up. But, when it comes to selling, you need to be able to get in front of people and have those kinds of conversations. I want to say email, it is not a sales vehicle. It’s a way to dot I’s and cross T’s, perhaps, but when it comes to selling, you need to be able to read the person that you’re talking with and I want you to be in front of them if you can. In the world that we live in today, many times that’s not possible, you’re going to be on the phone.
 
But, don’t do it with email when it comes to any of the negotiation parts of it. Selling and being an entrepreneur and going down this road of consultancy isn’t for everybody. If you don’t have a tolerance for risk, it’s going to be very, very difficult because at some point, we put it all on the line as business people, as entrepreneurs. It’s not just you and your ability to write code now. It’s you and your ability to do business to make progress as a businessperson and to sell. If you can’t sell, perhaps your whole livelihood is on the line, your family, your wife, you kids, your dogs, cats and everything else, your spouse or whoever, your significant person, all of that’s at risk when you do this and I think it’s so important that you recognize this going in.
 
I’m not trying to scare people, but it’s the reality of it, man. Like I said in a previous video, you get down the road a contract or two and you’re like what am I going to do to find the next one? What am I going to do? I’ve got three people that I put to work on this contract. How do I keep them busy? All of those things can be the source of lost sleep and it can be really scary and so I just want you to recognize that those things are there. You have to have a stomach for that and the person that you’re with if you’re in a partnership or marriage or whatever, those people have to be willing to share that with you, so it’s not easy and it’s not for everyone. What a lot of people do, and I’ve seen a lot of really good people go down this road, they go to work for another consultancy.
 
Or they go to work for a consultancy that’s out there, where they have somebody that’s selling and they’re really good technical people don’t want to sell, don’t care to sell, don’t want to risk everything they’ve ever worked for so they can have their own business. It’s not for everybody and so you need to really know who you are as a person. This is one reason, one other reason. At the every beginning, I talked about five years of experience being oh so important. I hope that what I’ve just said about some of the complexity, the need to sell, the risk you take with your livelihood and your life in general, all of that makes more sense out of why it’s important to have five years.
 
You need to bring as much to this as you can. Again, back to the consultancy. Some people will go to work for a consultancy and it’s kind of the perfect middle ground between being self employed and having the nine to five. You get to work on lots of projects. You might be able to make a little more money in that because that’s a little risky or it’s not the same risk as being self employed, not usually. You get a lot of the benefit of it. You surround with your team a lot of times. Ultimately, if you’re building a business, part of your job is to build a team, but if you don’t want to go down that road you can step into a team in the form of a consultancy and sometimes that’s a really good way to go for people that don’t have the want-to to take on the whole I want to be a business entrepreneur idea or maybe it’s not the right time in their life.
 
That’s another important component as well. One of the other things too that I want to say about selling is that sometimes, and I was guilty of this at first, anytime I was in a position where I had to sell something, I felt like I needed to kind of [Zig Ziglar-ize 00:07:59] myself. Like I said, I’m not a sales professional, but what I’ve learned by watching people that are really good and that are salespeople, they tend to be … They’re themselves before the sales call, during the sales visit, and after the sales call and all the followup stuff that are just they bring whatever quirks and personality flavor they have and they just are themselves. I think that’s the trick, if there is one, is to just bring you to the sales process.
 
Look, if you sell into something with you Zig Ziglar-ized version of you and then you show up or you’re on the contract and you’re just Scott programmer in my case or whatever, it creates this sense of wow, he’s this weird sales guy or this big salesy guy and then now he’s just Joe programmer. I don’t know. I’m just saying be yourself. It’s often said you don’t get a second chance to create a first impression and so that tends to lead us down the road of let me do all of this preparation and bang myself into something that I think is palatable for somebody to then spend money with me. Really, what you need to do is create a consistent impression. Your first impression should be basically the same as your second, third, and 300th impression with your customer.
 
Because when you get past the sales process, it’s just you and the work. It’s you and your team. It’s you and your ability to manage conflict and difficulty and work through issues and bang out projects, which is what we’re all about as software people and we bring it all back to that point. We’re software people, but when we step out as consultants, we take on a lot of stuff that’s outside of our core discipline. Sales and marketing is one of them. Last thing I want to talk about is negotiation. Like I said, we’ll do a whole other video on this, but you do have to put yourself in a position to be able to ask for the money. You do need to know how to follow up with people. This is where you can use email, but I think I still like the phone personally.
 
I know other people have differences of opinion, but follow up. Just because people haven’t gotten back to you doesn’t mean they’ve lost interest. It means they’re busy. Maybe they have lost interest, but you need to get them on the phone and let them tell you that or that they’ve moved on or that they hired somebody else or whatever. Because your final impression with a prospect should never hear that you’re broken because they didn’t hire you. They should hear well if you need us in the future, if there’s anything we can do for you going forward, if they’re any questions I can answer, I’d be happy to help you find success with your project. Your mission is to help them and I think if he contract doesn’t go your way and you don’t make the sale, you want to show that you’re professional and that you’re here to help them because you never know when somebody is going to come back to you.
 
We’ve had this happen multiple times where people have made a decision and then have changed course for a variety of reasons and then come back to us. I think because of the way that I handled the situation on first exit was why there was a second entrance. I wasn’t angry or crushed with disappointment and those are feelings that you have when it doesn’t go well, but you need to be a professional and just try to help the customer even though they’ve chosen to go a different route. I hope that was helpful. That’s a little bit about marketing and sales. There’s a lot to cover. The well is so deep when it comes to marketing and selling and there’s a ton of good information out there about it.
 
There’s more and more information about selling into technology that’s public that people like me that have put a lot of content out there that you can benefit from and you need to avail yourself of that. Selling is like programming in that the more you do it, practice, practice, practice, the better you get at it, the more comfortable you get doing, and the easier it is to move in and out of deals and to be a part of the sales process while you’re part of the programming process and while you’re part of managing people and being with your CPA and keeping track of all of the many things that we’ve talked about throughout this series. That’s it. Please like and subscribe and hit the bell, so you don’t miss any videos.
 
I am Scott with motivatedcodepro.com. Please come to the blog and check out the section I did. There’s another blog post for this video and then if you’re willing to give me your email address, I’ll send you the whole eBook that covers the entire thing. I’d be grateful for that and I hope this was good for you. I’m going to do lots of video on all these topics are very deep, so we’ll keep going. I’m Scott. Keep coming back. I’ll see you on the next video.

Take the Leap Into Successful Consulting

Stepping into your own consultancy is a big step indeed—one to be taken with care and caution. Make sure you are ready and that the timing is right with the rest of your personal priorities.

After years of software work, it’s your skill and experience that got you here. Stay sharp and go even deeper with the software development choices that paved the way for you.

Writing for blogs and posting on social media will help keep you here. Carve out time for this activity so it becomes part of your daily business process.

Staying in touch with your software development friends and keeping your business contacts warm will keep your prospects hot for finding new work.

Good businesses function as a team. Your CPA and business attorney will keep the business end of your venture healthy and accountable.

In the end, your willingness to market and sell will not only keep you in business, but will also allow you to grow your consulting practice and thrive. You have to get paid to succeed, so your ability to ask for the sale will make you a true entrepreneur and a successful consultant as a software developer.

As I inferred at the beginning of this article, each of these five keys is a deep topic, worthy of a lot more ink than I have spilled here.

In closing, I hope you are inspired to dig deep and ask yourself the important questions about becoming a successful consultant as a software developer.

Join the Motivated Code Pro Community

Yes, please sign me up for the MCP community.   I don't want to miss any articles or videos about advancing my software career and achieving work life balance!


5 Keys Transcript Part 5 of 6

Back to Part 5 - 5 Keys To Becoming A Successful Consultants as a Software Developer

Part 5, Key 4.

A Good CPA and Business Attorney

Transcript for Part 5 

Hey everybody, Scott here with Motivated Code Pro. Thanks for coming back today. This is part five of a six part series. Today we’re going to talk about your CPA and legal representation. Stay with me.
 
Shut up and sit down.
 
Thanks for coming back. If you’re going the road of becoming a consultant or starting a consultancy. Building a partnership, a business with fellow technology people. You’re a solopreneur. You’re a one-man band with a microphone. Whatever you’re doing, you’re self-employed. You are a business. And as a business, you need the representation of a CPA and a good business attorney. Why do you need those things? There are so many things that go on in your business beyond you and your hands on the keyboard. A good CPA is going to help you with everything from your corporate designation. Are you an LLC, a sole proprietorship, are you an S Corp or you a C Corp.
 
And your CPA can help you with those and will and should help you with that. And will help you change designations as your situation warrants as you move on. And so the time to have a CPA on your team and I really want you to think yourself, even if it’s just you to begin with, as a team. And your team needs key players, right? Your CPA is one. You might say your health insurance provider is another but I’m not going to talk about that at the moment. Your legal representation or your business attorney is another. And those are all very, very important things.
 
But particularly with the CPA has been so important to us. Anything that happens with the IRS, your CPA can represent you. It’s not just an accountant or a bookkeeper. It’s a certified public accountant and it’s very, very important. They can help you with everything from, like I said, your corporate designation, payroll and direct deposit, 401k for your employees if you have them or when you have them. They can help you with a lot that.
 
Here’s another thing that I do with my CPA all the time or with our CPA. We need to buy X equipment. Should I buy it in December or should I wait until next year to buy it? Is X thing deductible? That’s another good question. They usually are keeping their eye on your cash flow in addition to you, of course, are keeping your eye on your cash flow too. But you can … Hey, do I have the resources to finance X thing? To purchase X thing? To hire somebody as a W-2 employee or to bring somebody on as a 1099 contractor or do a corp to corp with somebody else.
 
And your CPA is your great place to go with all of those things and the importance of it cannot be overstated. Business. Anyway, here you do not want to short change yourself. You are not a CPA. Sorry, I’m a little distracted with the ringing phone. You’re not a CPA and I don’t want you to try to be a CPA. A lot of people when they’re first starting out are saying, “You know what, I don’t want to spend money on a CPA or business attorney. Man, I don’t have … I’m not even making money.”
 
Well, you don’t want to take on the responsibility of being your own CPA in the interest of trying to save money because it’s a bad move. You are a software professional. Your expertise is in building code. Helping customers to design processes and systems. You do not need to be sitting around with an Excel spreadsheet or bank statements and ledgers and all of the accounting-related stuff. It’s a waste of your time. And you’re not an expert nor do you have the expertise unless you really are an accountant. Even then I would tell you if you’re going to be in the software business, you’re going to be a consultancy, have the business savvy and the business sense to bring on somebody that’s an experienced CPA.
 
The other thing I want to say about the CPA that’s so, so important is that you need to like this person because we had a CPA in the past and every time the phone rang, it would just make my stomach just crunch up. It was difficult for me to deal with her. I learned later when we had a new CPA, what the difference is like breathing underwater versus bringing in the nice blue sky. Every time I had to deal with this first person, it was a gut-wrenching experience. She expected me to know things I didn’t know. I’m not an accountant. I’ve worked in corporate. I understand their accounting a lot better than I understand mine, right, as a small business.
 
Don’t be fooled into thinking that you could or should do that. Be smart. Don’t be your own accountant. And with a business attorney, this is important too. Whenever you get into anything contract and you need boiler plates for contractor agreements, subcontractor agreements, nondisclosure agreements, intellectual property issues that you might encounter. Anything to do with product and exposure to somebody else’s product and all that. I think it’s always a good to have somebody that you can balance ideas off of and that you can show documentation to in the form of what somebody else is giving you as a contract. Or what you’re going to offer to somebody else in particular. Those are good places for your attorney.
 
And a lot of times in our experience I could sell into an engagement with somebody and they say, “We’ll send you the contact.” You’re like, oh okay. Well and at other times somebody will say, “Okay, yeah, let’s do this deal together. Send me a contact or send me an agreement.” And then what do you do? Well you go out to the internet and find the best thing that you can find which could be a train wreck and could be a real legal heartache for you in the future.
 
It’s worth spending some money upfront to spend some time with a qualified business attorney who understands what you’re doing. Man, these things are really, really important. These are I’s you need dot and T’s you need to cross so you’re not overwhelmed later by the fact that you missed these details and now you’re going to get hurt in some negotiation or on some contract or money isn’t coming because you missed something.
 
So really, really important. Don’t try that yourself either. You’re not an attorney and again I’ll say even if you are an attorney and you’re trying to be in the software business, I don’t think … the doctor doesn’t do surgery on himself. So I don’t think that you should try to be your own accountant or your own attorney.
 
So that’s it. Those are some key things about your business partner. The people that you want to have on your business team. Again, your CPA And your attorney or legal representation. A lot of times those people will know each other and that’s really helpful. That’s been true for us. The attorney and attorneys that we’ve used have known and been connected to our accountancies.
 
And the last thing I want to say about all of that is those people particularly your CPA, he or she knows everybody in town. They have access to resources that you can’t even think of probably right off the top of your head. And they’re just good. And if you can like that person, I’ll say that’s a requirement. You need to like your CPA. You need to like your business attorney too.
 
So that’s it for today. I am Scott with motivatedcodepro.com. Go out to the blog. Check out the blog post for this section. This is number five. Or, go sign up and I’ll send you the e-book that has all six of these sections in the e-book. Again, like subscribe and hit the bell so you don’t miss any videos and keep coming back.
 
 

Join the Motivated Code Pro Community

Yes, please sign me up for the MCP community.   I don't want to miss any articles or videos about advancing my software career and achieving work life balance!


Getting Started in Programming

What are some things I need to know when I am just starting out as a programmer?

So you wanna be a software developer and the two questions are, what do I have to do and what do I have to know? I’m gonna answer those for you right now, stay with me.

I’m gonna answer two very important questions, what do I have to know and what do I have to do to become a software developer and first, let’s start with what do I have to know. And there is a ton of information on what you need to know but I’m gonna tell you, you need to know about the front-end. When we talk about the front-end of web development in particular, we’re talking about what’s running in the browser.

When we’re talking about the backend or the server-side, we’re talking about what’s running on the serve and so the browser is talking to a server is talking to the browser is talking to the server. And so what’s running in the browser, very simply, is HTML or HTML 5 typically today, CSS for design, and JavaScript is really the programming language that we’re using to manage the logic in the browser or on the front-end.

On the backend, could be almost anything running on the web server. In the company that we have, we use Java primarily but we use other stuff too. PHP, and you know, other people use Python and C Sharp and many other backend languages and there, this is where we’re talking on the backend, there, is where we talk to the database. And the database is an SQL database that’s typically Microsoft SQL server, IBM DB2, Oracle database, you know, My SQL, Postgres and there are a slew of others.

Those are, I think the ones I mentioned, any one of those would be really key to focus on if you’re looking at backend at this point. Understanding what a web server actually is is something to do some Google work on, do some Google searching. There is so many. You know, Apache is a big famous one, it’s a great place to start. So consider that.

So I wanna just read a few things here from my handy dandy notecards and there are a lot of courses, there are a lot of schools and code camps and places and tutorials that are geared to helping people get started and learn what they need to learn, some help find jobs and so on. But, you know, codingdojo.com, community college programs and Udemy or udemy.com offer tutorials, lynda.com, university programs. If you’re already in school, that’s great. Tutorialspoint.com, pluralsite.com, teamtreehouse.com, coursera.com. Audacity.com, hackreactor.com. And that’s a short, small sample.

You can do some research on your own and find a good place to learn. I think tutorials are a great place to start. If you get addicted to programming, you’ll probably find that when you start to work with tutorials and I think being addicted to sitting at your computer and trying to figure things out where the programming language is a great way to indicate to yourself that you are wanting to be a programmer, that you could actually do that.

So the internet is a great place to research and you know, there’s not a lack of information there. It’s a lack of structure. In fact, we have information overload coming at us. I mean, if you go to the browser and type learn to program in JavaScript, you’ll be overwhelmed by the response that Doctor Google gives you back. So you gotta be mindful. And what I’m telling you here is extremely important. I have a thing that I call the 10/90 principle and that is that software development is 10% research, 10. And 90% walking that research out in the form of practice, practice, practice. So 10% research, 90% practice equals results, getting to being a programmer.

And so, that’s a little bit about what you need to learn. And there are many technologies and I mentioned some of them. Some things to think about, some JavaScript frameworks and this is all, you know, anything that’s going on in the browser with regards to JavaScript generally involves a framework. You know, Ext JS from Sencha is a framework, of course we talked HTML and HTML 5 and CSS. Android and java development is a front-end, obviously for Android devices. Vue.js, ember.js, ionic is really cool. Angular from the various flavors it has.

Cordova and Phonegap for taking your JavaScript and making hybrid native apps. React.js, if you’re new and you’re considering a JavaScript framework, I think that’s a great place to start. React native for creating react for mobile devices. On the backend, java, java spring which is a framework for java, same thing applies.

Now, frameworks, by the way, framework is another way of saying, “I’m gonna solve three problems and introduce one.” So if you do the math there, it’s still a really good deal to invest in learning a framework. Everywhere you work, there’s going to be a framework and I wanna say that knowing a framework is especially important and it’s really valuable to your employers and to your work history and to your ability to find your first and next job.

Java Hibernate, CC sharp and C++, Ruby and Ruby [inaudible 00:05:21], Python, PHP, no JS, Express JS and [inaudible 00:05:26] and so many others JavaScript variants on the backend. You know, and then you need to understand source control in the form of get. You can go to gethub.com and get a free account. Some version is still out, fairly widely popular, out in the real world of software development. There’s some IDEs and things that you need to program with. Netbeans, Microsoft VS code, ADOM, Webstorm, Sublime, Eclipse, digital studio and of course, there’s no SQL which is basically saying, I can hit the database but I’m not gonna use SQL to do it, I’m gonna use JSON which are JavaScript object notation.

But my point in all of this flurry with the cards just to make a very important point, there is a lot to learn but I want you to learn one thing at a time or one set of disciplines at a time like if you’re gonna learn about react of if you’re gonna learn about the core language of JavaScript, don’t learn it from 10 different places, don’t try to learn oracle and react all at the same time. Stick with one thing at a time, move on to the next thing.

And then the next thing you gotta do is you gotta be able to demonstrate competence and produce a body of work. So if you go to gethub.com, you can open up a free account and as you’re working on things and you’re learning things, you can put them up on gethub.com and this is how you can show people what you’ve learned to do and if you’re looking to get a first job, this is a really hard one, I’ll do a whole video on this. But remember, there are four million programmers in the world today, according to my last Google search. And all four million of us had a first job. So don’t let that first job scare you, it may take some time, it may take some devotion, it may take patience. It will take all of those but you can get a first job.

Anyway, that’s a little bit about what you need to know and what you have to do.
I’m Scott with Motivated Code Pro, please like, subscribe and hit the bells so you don’t miss any videos and keep coming back.

Join the Motivated Code Pro Community

Yes, please sign me up for the MCP community.   I don't want to miss any articles or videos about advancing my software career and achieving work life balance!


Why Do Companies Hire Software Developers?

Today, I have one question. Why do companies hire software developers? I’ll bet my answer’s different than yours. Stay with me. We’ll start right now.

Why do companies hire software developers?
I think the answer usually runs along the lines of, well, we have a project backlog and we have a bunch of things to produce, somebody’s quit and we need to replace him, we have a bunch of new project work coming in and we need to address that, and that’s only half the truth.

Years ago, I was running late for work one day and I was sort of on-call. We had a thing called Programmer On Duty. I was the POD, P-O-D, and I ran into my boss’s office very apologetic, and I said, “Oh, man, I know I’m here to support our customers and the other programmers.” He stops me and he says, “Scott, Scott, you are here to make money for the company,” and he dismissed me more or less.

I left thinking about that and I’ve never forgotten that lesson because he drew a direct line between the work that I do and making money for the company and why they hire us to begin with. I want you to make that connection, too. The work that you do as a software developer is to affect the bottom line, is to make money for the company. It’s not to work in the latest framework, it’s none of that kind of stuff. I mean, those are benefits to you as a software developer and the company’s using those things for profit purposes, not because it’s the coolest, latest, sexiest thing. It’s because this is how they chose to use their technology infrastructure to make money and you are there to operate that infrastructure, so to speak, or to program it to help the company make money on your work.

In case I haven’t been clear, you’re there to make money for the company. We, as software developers, as contractors, consultants, and employees, junior, senior, CIO, and every point in between, our job is to produce and the company is going to take that work and make money for the company. That’s where we fit in and you can really see this with smaller companies. You know your work affects a specific aspect of the web, let’s say, and that’s going to allow the company to sell more, produce more, do it faster, something that affects the bottom line in a positive way, so it’s really, really important to be in touch with the fact that my work affects the bottom line. I am only there to help the company to be profitable. That’s what I want you to take away from today’s video.

I am Scott, with Motivated Code Pro. Thanks for coming. Please like and subscribe and keep coming back.

Join the Motivated Code Pro Community

Yes, please sign me up for the MCP community.   I don't want to miss any articles or videos about advancing my software career and achieving work life balance!


Do you REALLY want to work from home???

Today I want to talk about working at home. That’s the greatest thing ever, right? Stay with me, coming right up.

My name’s Scott with Motivated Code Pro, today I want to talk about the topic of working at home and how great it is, right?

People tend to fall into two categories when it comes to working at home. One is the category of I can never seem to get to my computer to get to work to begin with. I’m distracted by the garage, and the kitchen, and the floorboard that needs to be fixed, just all kinds of stuff around the house, right?

Then, in the other camp, there is the, I can never seem to get away from my computer and there’s just always so much to do, just one more thing and then I’ll get up. You know, early mornings and late nights and it just goes on and on.

So, finding work-life balance at home is tougher than you think. You have this idea that’s it going to be so great, man, I’m going to work in my pajamas or my short pants all day long. I’m going to sit out on the patio, I’m going to take advantage of the fact that I’m home.

What tends to happen is you come to where your computer is … I sit over here and work, you know I sit there and I grind all day long. I mean, I’m like at the office, this is my office, this is where I work. Days tend to be long for work at home, right? The idea of the amount of work that you need to produce tends to be amplified for work at home people, right, because you know you’re not sitting in an office so you’re mindful of the fact that people are gaging your work output in a different way. At least this is what goes through your mind and people are paying attention to you. If you miss a phone call, “Where are they?” You know, “He hasn’t responded to email, did you text him and page him?” All of this stuff that comes from working at home.

I’ve been working at home for 11 years and I’ve worked through a lot of that stuff where I know how to be connected and I know how to let people know when I’m going to be right there every moment to respond to something. You know you learn to work through those things. That’s one aspect of it.

Another really important aspect of work at home is the loneliness factor. If people are honest, after a couple of months, if you’re at home alone, working, it can be a little dry. It can get a little bit lonely. You miss the water cooler talk and the sports discussion, what we saw at the movies over the weekend, who’s doing what, just everything about the water cooler, right, at the office. So, you need to consider that. It’s not something that we think about. You know we tend to look at what we perceive is the positives and we overlook the things that are the positives about working in an office setting. So keep all that in mind as you consider.

Some people don’t have a choice, you sit there, “We have so many people in our office, we’ve had such growth, you have to work at home.” That’s one thing. Or, other people will say, “You know what? We’ve tried work at home with people, it’s been terrible. We’ve had bad luck, you need to come to the office.” So maybe you don’t have a choice in all of that. Those are some of the, I don’t know, some of the things in the work at home kind of environment.

Lots of interruptions when you work at home. You think you’re going to work un-distracted but you won’t. You know people are going to come to the door, the lawn guy or whoever is out there, your kids or your family, the people that are in and out of your house all day long. You will get to a place where you wonder, how it is I ever had a job, right? You take your dog to the vet, the kids to the doctor, you do something with your spouse, somebody’s car needs to be picked up, somebody’s stuck on the other side of town. All of this stuff just tends to be front and center when you work at home. So it’s really important to make sure the benefits of, when I go to the office, I’m there for the duration unless there’s an emergency, right?

That’s a positive aspect and a vote, let’s say, for being in an office setting. Having your freedom and being able to determine when you’re going to work is nice too but like I said, people that gravitate to the, “I can’t seem to get away from my computer” tend to get up super early, tend to work late. You know late nights and early mornings again. So a lot of things to think about.

When you go to office, you go in, you sit down, you work your eight, nine, ten hours, you pack up your computer and you go home. You might do some stuff at home but there is this very definite separation of work and home. Even if you work a little bit at home, it’s just different. I remember feeling like it was more casual. Somehow when you work at home all day long, you never get to that real casual space, I mean you can take your computer to the couch but it’s just different. That’s my experience. Yours might be different, work at home is some to experience for sure and something everybody has to make a decision about on their own.

Okay, so let’s wrap it up. There are a few things that I haven’t mentioned yet. If you work at home, you do not have to sit in traffic. Which is a big, big, big vote for working at home.

Collaborating with your peers is different when you work at home, it’s easier to walk down the hall or to cubicle across the way and talk to somebody. When you’re at home, you have to pick up the phone, or get on the chat, or arrange a phone call, or arrange a meeting, or arrange a screen share and you will spend a lot of time on screen share apps like GoToMeeting, WebEx, Join.me and there’s a host of others but you get the point. Collaboration looks different.

You’re going to miss out on all the office politics, well a lot of it anyway because something about being in the environment makes the politics of the situation come front and center and when you’re at home and you’re at a bit of a distance from that, some people get a lot of relief from that, some people really miss that. So you need to ask yourself where you are in that spectrum of need to be around the office politics and your peers a lot or you’re okay being sort of on the island and communicating through SlackChat and other forms of chat, WebEx, GoToMeeting and those things that I’ve already mentioned.

For me, in case you’re wondering, I vote to stay at home. Despite any negatives that come with being at home, you know not having to sit in traffic and all those things, it’s just way worth it for me to work here.

As a business, we have had office space and our employees came to work at an office but didn’t like doing it because every time I had to get up from my desk and drive across town and unpack my computer and set up, that was an hour of billable time or an hour of productive time.

So you can be more productive at home if you’re disciplined. It gets my vote, you have to experience for yourself. It’s not for everybody. We’ve have people come here just couldn’t, and work for us, and it was difficult for them to manage the work at home concept. They just weren’t as productive as they were when they were either here or at our office space.

Anyway, I am Scott with Motivated Code Pro, please subscribe and like and I will see you on the next video. Keep coming back.

Join the Motivated Code Pro Community

Yes, please sign me up for the MCP community.   I don't want to miss any articles or videos about advancing my software career and achieving work life balance!


Part 6 of 6 – 5 Keys To Becoming a Successful Consultant as a Software Developer

Part 6, Key 5.

Welcome to Sales and Marketing

This article was also published at simpleprogrammer.com

If you would like to read the transcript for this video, click here.

This is part 6 of a 6 part series:

This is where the reality of being a self-employed entrepreneur really sinks in. Of the five keys, this will require the most from you and take you the furthest from your comfort zone.

This is the one thing that keeps otherwise capable and talented software professionals from taking the step to becoming an independent consultant. I have spoken to many people over the years who have simply said, “I can’t sell.”

Let’s face it, if you have to risk your home and family life as you know it and everything else you’ve worked hard for up to this point, the very real possibility of being without work for periods of time can be a nonstarter.

Staying with a company you like, doing a job you love, and maintaining a lower risk in your life is not a bad thing. There is nothing wrong with that.

The word entrepreneur carries with it the connotation of glamour and success. While this is true for some, the brutal truth for all is that it is extremely hard work. Late nights, early mornings, financial risks, and abandoned personal life are a few of the better-known, though infrequently discussed, hazards of entrepreneurship.

Let me say it this way: Sometimes it sucks, and for every ounce of success, there is a pound of stress.

Being an entrepreneur is not for everyone. Taking a risk like this with your livelihood takes a close examination of who you really are at this point in your life, your tolerance for risk in general, and a super long look at the reality of your skill set in the marketplace.

Does the “suggestion” that you have at least five years of experience make perfect sense now?

Some software people choose to work for an established consultancy. This is often seen as the perfect middle ground between a traditional 9-to-5 job and being self-employed but with less risk and no requirement to “ask for the sale,” because a sales pro is likely handling that. This is a decent choice, maybe a great way to put your toe in the water. Maybe a great place to spend your career.

If you want to be an entrepreneur and self-employed as an independent software professional, then you will need to sell yourself, your services, and your company.

Like a lot of things, selling is a skill that takes time and patience, and for deeply technical people does not tend to come naturally. It has to be developed. Just like learning to code, it takes practice, practice, practice.

I think the best piece of advice I’ve ever gotten is to just be myself and to talk to prospects the way I would talk to a new friend. Ultimately, they are buying you, not some salesy version of you.

You can’t control the way prospects respond to you; some will be fun and engaging, some will be difficult, but you have total control over yourself and your response. So be yourself. It’s what you know best. It’s what you already have.

Even if you’re a bit klutzy, your sense of authenticity will come through and be easier to warm up to than a super-polished, over-rehearsed Zig Ziglar version of yourself.

With all that said, there is nothing wrong with learning as much about marketing and sales as you can—in the end, though, just be yourself as you apply the techniques and lessons you’ve learned.

Finally, when it comes to selling, at some point in the process you are going to have to ask for the sale, to say it costs x amount of money, it is going to take x long to complete, the payment terms are thus, and that you are the right person to help them. Sign here, please.

Your preparation for this moment could take weeks or months, but you need to be ready.

The most important thing to know at this point in the process is that everything is a negotiation. I mean everything. It might look something like this:

You throw out a fair number, but they say it’s high (and your throat is in your stomach).

They counter with a low number (now you have un-swallowed your throat).

You negotiate to the middle.

Sometimes, you get it just right, but other times you will hear things like, “It’s outside of the financial allocation I have for this project,” or “It’s more than I’m comfortable selling to my boss down the hall.” It could be anything, but it’s always a negotiation and you need to prepare yourself mentally for that process. You need to know what your bottom line is.

This gets to the heart of closing deals and it is something you will have to work on over time. You don’t get to close deals every day, and it is these moments that coin phrases like the closer.

These conversations need to happen in person if possible or over the phone at least. Email is not the medium to handle a serious negotiation. I say this based on real experience and real money. The value of a voice-to-voice, or preferably a face-to-face, conversation cannot be overstated.

To wrap up this section, I want to remind you that selling is a strange bedfellow for software development professionals and it takes practice, practice, and still more practice. You have to really want it.

The well is deep when it comes to marketing and selling. There are infinite resources available on the web and in books. My goal here was to scratch the surface and present the reality of sales and marketing from the perspective of a software professional who has been there, who in fact lives it every day.

Take the Leap Into Successful Consulting

Stepping into your own consultancy is a big step indeed—one to be taken with care and caution. Make sure you are ready and that the timing is right with the rest of your personal priorities.

After years of software work, it’s your skill and experience that got you here. Stay sharp and go even deeper with the software development choices that paved the way for you.

Writing for blogs and posting on social media will help keep you here. Carve out time for this activity so it becomes part of your daily business process.

Staying in touch with your software development friends and keeping your business contacts warm will keep your prospects hot for finding new work.

Good businesses function as a team. Your CPA and business attorney will keep the business end of your venture healthy and accountable.

In the end, your willingness to market and sell will not only keep you in business, but will also allow you to grow your consulting practice and thrive. You have to get paid to succeed, so your ability to ask for the sale will make you a true entrepreneur and a successful consultant as a software developer.

As I inferred at the beginning of this article, each of these five keys is a deep topic, worthy of a lot more ink than I have spilled here.

In closing, I hope you are inspired to dig deep and ask yourself the important questions about becoming a successful consultant as a software developer.

Join the Motivated Code Pro Community

Yes, please sign me up for the MCP community.   I don't want to miss any articles or videos about advancing my software career and achieving work life balance!


5 Keys Transcript Part 3 of 6

Back to Part 3 - 5 Keys To Becoming A Successful Consultants as a Software Developer

Part 3, Key 2.

Writing for Blogs and Posting on Social Media

Transcript for Part 3 

Hey everybody, Scott here with MCP.com thanks for coming back, today is part 3 and Key #2 to becoming a successful consultant as a software developer, we’re going to talk about writing blogs and staying busy on social media, stay with me.

Ok, so today in our third part of the six part series Key #2 as I’ve said already is writing for blogs and staying busy on social media.

And one thing I wanted to say about this, is this is good old fashioned marketing. If you’re stepping out into the wild, wild west of consulting and contracting and selling your services in the big world I think you need to have some presence online. I think this is obvious to a lot of people but for somebody, like me,  I probably spent a decade of running this business with relative indifference.

I mean, we have a site and I have some personal social media stuff but I didn’t really engage to the depths that I am going to suggest that you do.

So I want to tell a quick story about having a presence online.
I had written an article, and I’ve written several articles over the years in various magazines and stuff, but in this particular one and this goes back almost ten years, and it was a very short article encouraging people in the AS400 world to experiment with Java and use a particular IDE called Netbeans to do that and a couple of months after that article published (and this is still print magazine at the time, although I guess now it’s also online) MCPressonline is what it’s called today.

The article itself was just talking about Java and encouraging people to get started with it and I got a call from a company here in Tennessee not too far from here….
First I got emails, then I got calls.
We talked on the phone many times and then there was a site visit.
And because of their interest in me through this article that I wrote they thought I could come and bang out a bunch of Java code which is exactly what happened. I had just short of a two year arrangement with them and it was a big step for our company and it still didn’t dawn on me in a way it should have. I mean, I was able to connect the dots that this article equals this result but I didn’t keep doing it until much later and I wrote quite a bit later but anyway what I’m trying to say is sometimes pouring cups of water into… sometimes it feels like pouring cups of water into the sea of social media and it doesn’t feel like you’re making a big splash but little by little if you stay consistent and you post on social media, you start your own blog, you say stuff on linkedIN, short articles directing people to your blog, you know Twitter is one that’s popular in a lot of technology in people’s minds, Facebook and Instagram.

At the risk of missing any of the social media platforms I’ll just say, that your Facebook business page, your blog, and other people’s blog that you can write for, is extremely important and as I said, it’s just good old fashioned marketing.

I’m going to cheat and look at my board here a bit, because there’s so much content in this series.

So It’s never too early or too late to start, right?
So for me like I said  I had relative indifference I didn’t dislike social media I just wasn’t in love with it at the same time.
So I didn’t pay a lot of attention to it.
So this year, in my efforts to grow our business I’ve taken a much deeper interest in social media and plus I really wanted to help people take the steps I’ve taken probably with a little more efficiency because when I’ve started as I’ve said in a previous video there just wasn’t as much material out there mapping and charting the course and so my Youtube channel and my blog is about that.

A significant part of that is motivated so that I can help other people do some of the things I’ve done, and then you know maybe I can benefit from it in some way, but if I can help other people in some way that’s a big deal.

So, writing for other people’s blogs, writing for your own, and start a blog and it’s never too early or too late to start like I said. If you’re just beginning or you’re still working in your corporate job go ahead and do it, it doesn’t hurt.

I’ve heard some stories where people have completely changed their lives through the publishing of their own blog and having consistent out there and that kind of stuff so.

It’s a big deal. It’s difficult to say this = money but this does equal money and having an online presence is a big deal when you’re selling something today.

You need to have your own website, your blog, you need to keep busy with your social media stuff, in addition to keeping your skills sharp from a previous video and to keep building your business savvy as you go along and this is part of that.

So that’s a little bit about posting for blogs, having a blog, using social media to your advantage.

What I wanted to do with this video, what I want for you to take away from it is, it’s important and don’t ignore it. Work it into your busy schedule, make sure you have a rhythm to putting stuff up on social media, and you can see very clearly that I’ve chosen Youtube as a big part of it and my blog.

So, go to motivatedcodepro.com and check out the blog post for this video, and sign up so you can get the whole E-book emailed to you that covers all 6 sections and the 5 keys to becoming a successful consultant as a software developer.

I am Scott with Motivated Code Pro, please Like, Subscribe, Hit the Bell, and keep coming back.

Join the Motivated Code Pro Community

Yes, please sign me up for the MCP community.   I don't want to miss any articles or videos about advancing my software career and achieving work life balance!


Part 5 of 6 – 5 Keys To Becoming a Successful Consultant as a Software Developer

Part 5, Key 4.

A Good CPA and Business Attorney

This article was also published at simpleprogrammer.com

If you would like to read the transcript for this video, click here.

This is part 5 of a 6 part series:

Think of your certified public accountant (CPA) as an integral part of your team, even if you’re a team of one. CPAs are licensed by the state or states they do business in and can help you with your local, state, and federal tax issues.

There are a number of things your CPA does or can do for you.

Your CPA:

  • Will help you select the right corporate designation: limited liability companyLLC, S corporation, C corporation, sole proprietorship—this can change for various reasons over time and your CPA will help if the time comes to change your designation.
  • Is a great source of advice when you get started; when you shrink or grow; if you struggle financially; and when you want to borrow money, purchase equipment, or make other financial decisions. Here are some questions I have asked countless times:
    • Is “x thing” deductible?
    • Should I buy this equipment now or wait until next year?
    • Based on my gross income, how much money should I set aside for taxes?
    • Based on my income, am I in a good position to hire someone at x rate of pay?
    • Should I hire this person as a W2 employee or a 1099 contractor?
  • Can support you in an Internal Revenue Service (IRS) audit or in responding to IRS inquiries (or nasty-grams). This is huge. CPAs know how to deal with the IRS in ways that you do not. Do not try to handle the IRS on your own.
  • CPAs are generally connected to people in your community who can help you with bookkeeping, banking, credit, payroll and direct deposit, 401(k), and even health care. Your CPA may not do these things themselves, but they will generally know who the right people are for a given discipline.

The time to hire a CPA is when you first start your business. Interview a few local CPAs as you’re getting started. Tell them you’re a new business owner and that they should assume you know nothing about accounting for a small business.

Unless you have an accounting degree or an actual background in accounting, do not assume that your exposure to big-company corporate accounting is going to get you through. Remember, you are a software professional, not an accountant. Don’t devote valuable time to someone else’s expertise.

Your CPA can guide you or direct you to helpful resources that will start you on the right footing from a tax and accounting standpoint and can guide you as you grow. Make sure your potential CPA is easy to access; returns phone calls, texts, and emails promptly; and is someone you like. I cannot overemphasize this point. Over time, your CPA is someone you will have a lot of contact with. If you groan every time they show up on your caller ID, you have the wrong CPA.

A business attorney is a bit more remote but still integral to your team—once more, even if the team is just you to begin with.

As a software development consultant, contractor, or freelancer,—call it what you like— you are self-employed, and as a matter of course you will submit proposals and contracts to clients, potential clients, and vendors, as well as to contract or consultative workers.

Sometimes, your clients will insist that they author the contract. The same thing might be true for your 1099 professionals and vendors. All of that is well and good, but you are not a lawyer and therefore you are not qualified to review the legalese of a contract. Your business lawyer can and should do this for you.

A few common agreements consultants need to produce or agree to:

  • NDA – nNondisclosure agreement
  • Contractor agreement
  • Subcontractor agreement
  • Intellectual property rights

In most cases, these agreements will be boilerplate or one-offs from a boilerplate so you don’t have to have these written and rewritten again and again. Having an attorney to quickly review agreements and changes asked for by your clients, vendors, and 1099 professionals is essential to your peace of mind.

To close this section, I want to remind you that you are a software professional. You are not a CPA or an attorney. Spend your time with your customers, your prospects, your software product, your blog, your social media, etc. You have plenty to do already. Leave the accounting and lawyering to the experts while you tend to your own expertise.

Join the Motivated Code Pro Community

Yes, please sign me up for the MCP community.   I don't want to miss any articles or videos about advancing my software career and achieving work life balance!


Part 4 of 6 – 5 Keys To Becoming a Successful Consultant as a Software Developer

Part 4, Key 3.

Being Able to Find Work

This article was also published at simpleprogrammer.com

If you would like to read the transcript for this video, click here.

This is part 4 of a 6 part series:

The biggest way people fail as consultants or contract programmers is in not being able to find work. Specifically, the second and subsequent contracts are harder to obtain. When someone leaves their full-time job to consult, they usually have an arrangement waiting with another company. The difficulty comes when that first contract ends.

One interesting thing about contracts that I want to share is this: I have started multiple contracts over the years that had a stated duration. Ninety days or six months, let’s say. That is not a lot of time and not something I would recommend leaving a full-time position for.

However, I have never been on a contract that lasted only the stated duration. (If you listen carefully, you can hear me knocking on wood.) My point is that contract durations are often contract starting points. There is a never a guarantee, but that is my experience and the experience of many other consultants.

Remember that contract work is designed to end. 

That is perhaps the most important statement in this article. In a sense, you are there to work yourself out of a job. With that in mind, you should have your eye on where work will come from after your current engagement ends.

Let me say it a different way: You need to look for future work and future relationships, and tend to your current relationships, your social media platforms, and yours and other blogs, or you will be out of business. Finished.

Attending user groups is a great way to meet people who work in your space and are doing more or less the same things that you are. This is where you can make friends, potentially help others, and meet people with influence and hiring ability.

Connecting with consultancies around the country that offer the same types of services you do is a great way to build valuable relationships. As you know, it’s not just finding work, it’s being able to staff that work as well. Other consultancies have this challenge, too, and will look for people like you to meet their customer needs. This is a big win-win in that you can conceivably find work and potentially have access to their resources to staff projects you might sell into.

Something to consider when working through other consultancies is that you will not get the same rate you will get from a direct client—this could be seen as a negative. The positive is that you will typically not have to wait an eternity to get paid. You are also benefiting from their sales efforts.

Working with direct customers is more profitable but harder to sell into. Also, billing with direct customers can be painful and adds another task to an already busy work life—Welcome to Accounts Receivable.

Our company has never had a problem getting paid through our consultancy relationships, but I have frequently had to make phone calls, send emails, etc. to remind our direct customers that we have not received payment.

Stay in touch with people you have worked with over the years. People move around, take new jobs, learn new skills, and may need someone like you to help with their projects, their company, and their software products. Keep your contacts warm. Phone calls, emails, lunches, and other friendly gestures are what keep these relationships alive.

You will feel the gravitational pull of your billable work trying to distract you from the road ahead. This is a dangerous trap. Yes, you need to work and bill to get paid today, but time will pass and you need to be ready for that too.

Strive for balance in tending to your present work while tending to your future possibilities as well. Contracts are built to end. Get comfortable with change. Stay connected!

Key 3 on YouTube

Join the Motivated Code Pro Community

Yes, please sign me up for the MCP community.   I don't want to miss any articles or videos about advancing my software career and achieving work life balance!


Part 3 of 6 – 5 Keys To Becoming a Successful Consultant as a Software Developer

Part 3, Key 2.

Writing for Blogs and Posting on Social Media

This article was also published at simpleprogrammer.com

If you would like to read the transcript for this video, click here.

This is part 3 of a 6 part series:

Getting your name out there is important. Writing for blogs and posting on social media are great ways to let prospects and even existing customers know who you are, what you do, and that you really know your stuff.

Taking the initiative to write also gives them a look at your ability to communicate using the written word. Despite living in a world of highly abridged communication styles via text and chat tools, being able to write effectively is incredibly valuable if you’re going to be a consultant—in my humble opinion. IMHO. 

This is good old-fashioned marketing for the modern era.

When I first started as a consultant, I wrote an article for a popular AS/400 magazine—still in paper form in those days—encouraging their audience to try Java and to try the NetBeans IDE. It was a guest post, about 500 words.

After the article was published, a company in Tennessee, not too far from where I live, contacted me with a barrage of questions related to Java. After several phone calls and a site visit, we began a nearly two-year consulting engagement that would not and could not have happened without that article.

Sometimes, writing for a blog, yours or someone else’s, feels like pouring cups of water into the ocean, but I know from experience that those tiny contributions to the sea of digital media can make a big difference to you. You never know who might be watching, who might be readin

All of the social platforms are used for business these days. As for me, I use LinkedIn, and I have a YouTube channel, a personal blog, and a Facebook business page.

I encourage you to start a blog and write for other blogs; write short articles on LinkedIn or other sites in your space; consider creating a YouTube channel where you can be helpful and informative to people who might use your services or work in your space.

Do some homework. What are successful people in your space doing to attract attention and help others?

It’s never too soon or too late to start. This is something that you should give attention to, even if you don’t consider yourself savvy on the various social platforms.

I am guilty of a decade of indifference where social media is concerned and have only recently really, really tried to get traction. And that was way after our business had been established. Don’t wait.

Think of social media and blogging as a step in trusting the process. Your hard work is never wasted. Have faith.

Social media and blogging are an investment in your future, but they are something you have to do today without assurance of a payoff—again, this is an exercise in faith. Immediate return is not the goal; creating an online presence takes time and effort without the immediacy of a paycheck. This is an investment in yourself and your business, and will ultimately help you find work and stay busy.

Join the Motivated Code Pro Community

Yes, please sign me up for the MCP community.   I don't want to miss any articles or videos about advancing my software career and achieving work life balance!


5 Keys Transcript Part 2 of 6

Back to Part 2 - 5 Keys To Becoming A Successful Consultants as a Software Developer

Part 2, Key 1.

Your Skill and Experience

Transcript for Part 2

I’m Scott with Motivatedcodepro.com, thanks for coming back today is part 2 of a 6 part series, and today we’re going to talk about your skills and experience, stay with me.

Welcome back, and thanks for coming back. I’m Scott, with Motivatedcodepro(.com), Part 2 of becoming a successful consultant as a software developer and this key of the 5 keys involves your skill and experience.

So I want to talk for the next few minutes about your skill and experience, and I said in another video that I think you need to have 5 years of experience with your skill set or whatever you’re selling as a technology professional before you hang your own shingle out there, before you step out into the great big world, risk your livelihood, and everything you’ve worked for, up to that point.

You need to have 5 years or you’re just not going to have the confidence, and the competence that I think a customer is going to expect of you, when you step out on your own.

Now, I know there are exceptions to this. You can leave comments if you want to and tell me about it, but I know that.
But, I also know that by and large most people do better when they have that 5 years of experience.
And some of that goes to maturity, and length of time in a technology, that means you’ve spent enough time in it that you know how to solve pretty much any problems.
And there are so many other things to think about, besides just your skill and experience if you have to scramble on a contract to get traction and to do the work that’s being put in front of you, that’s a bad deal.

I, mean, in the previous video (___) this one here, I listed ten other things that you have to think about. And you know, things like growing your business, staying busy, tax and accounting, legal, marketing and sales, and you know, the whole ten.

I will list them in the description and you can see them at motivatedcodepro.com in the blog post for this video.

The point there, is simply that, there is so much to think about that you need to have your skills in the bag with what you’re selling. Because the day you step into the office, or you get on the remote to deal with your Day One of your contractor consulting opportunity you’re going to learn a ton of stuff to begin with and so you need to bring a lot of experience with you and I think the magic number is five years.

And one more, you may have two years you may have twenty years, but I think five is the sweet spot.

Experience is one of those things that cannot be taught, you have to live it, you can’t rush it.
You can be really, really smart and I’ve seen savant level people that could do amazing things technologically but when you’re running your own business, when you’re stepping out, when you’re risking your livelihood and all that you’ve worked for, (this is my house that I’m waving at!) you better be confident and competent. You better have covered as much ground as you possibly can. And so I am encouraging you to spend, if you’re looking to do this and this is one of your goals, make sure you have 5 good years of experience and I keep saying it so it’ll echo for you.

I really want that for you, you will be successful if you can do that.
I am going to cheat and look at my notes here because there’s a lot of content I want to get through.

So the thing about time, you need to use your time super super wisely, again we’re talking about skill and experience.

I’m sorry, skill will get you paid and time is your greatest asset. Treat it like money and the way you spend your time is so important when you’re trying to run your company or you’re building your skill and experience.

And let’s say your skills are sharp today, and I imagine they are.
But what about tomorrow, and the next day, and the next year?
It doesn’t take a crystal ball to see what’s coming down the pike generally. In technology things come and go very quickly but things that get traction when it comes to continuing your education or your skill I’m a big fan of working with what gets you paid, right? So stay in the things that get you paid.
I’m not a big fan of wandering off into the technology du jour of existence and trying to learn new things unless you’re doing that for fun and you don’t want to get paid for it.

I want you to work on things that are going to get you paid, period.

Your business, don’t waste time.

That’s it for today! I am Scott with Motivated Code Pro, that’s number 2 in the series of 6.
Go to motivatedcodepro.com check out the blog post for this, have the E-book emailed to you, and keep coming back.

See you on the next video!

Join the Motivated Code Pro Community

Yes, please sign me up for the MCP community.   I don't want to miss any articles or videos about advancing my software career and achieving work life balance!


Part 2 of 6 – 5 Keys To Becoming a Successful Consultant as a Software Developer

Part 2, Key 1.

Your Skill and Experience

This article was also published at simpleprogrammer.com

If you would like to read the transcript for this video, click here.

This is part 2 of a 6 part series:

Obvious, right? We present ourselves to potential clients based on the merits of our skill and experience. I want you to have at least five years of work history in your technologies of choice before trying to sell those skills to potential customers. 

Experience is the one thing that can’t be taught or rushed. Time takes time and it is the day-to-day, mile-after-mile, step-by-step work that earns you that experience. There is no substitute for putting in the time. 

Companies that engage your services are counting on you to complete time-sensitive projects with efficiency. I know from years on the buying side of many contracts that people with at least five years of solid experience in their disciplines tend to come with robust knowledge of their chosen languages, frameworks, and technologies. They are able to resolve complex problems, work independently or on a team, and can learn new disciplines quickly.

Companies will hire you based on your experience (and your ability to sell and represent that experience), but they will also expect you to consume and apply new information very quickly.

Maybe they work in a business that is different from where you came from. Trucking instead of health care, for example, so you will need to apply your technology skills in a business setting that is new to you. You need to be mentally limber, eager to learn what is new, and quick to apply what you know.

Not only that, with all of the Java, PHP, Python, and JavaScript frameworks—not to mention the many other languages, design patterns, and the sheer number of people using them—you will definitely encounter techniques and solutions to common problems that are different than what you are used to. Fast assimilation of new things is part of the fun and also part of the challenge.

That said, there is always the temptation to wander way off course and learn something completely new and sexy. You may want to learn it because it’s getting a lot of press, because it’s the hot new thing, the technology du jour.

Pause! Stop!

Don’t do that. Wait until buying customers are engaging with that technology before you burn countless hours of your life to learn something that may not take off and therefore will not get you paid.

Remember, you are in business now. You need to make smart business choices with your talent and time. Be sensible with where you spend it; make choices based on what is going to get you paid. Period.

As for further sharpening your existing tools, it’s wise to spend at least 30 minutes every single workday pushing your skills ahead—learning a new framework, for example (maybe new to you, but tried-and-true in the marketplace), within one of your main languages. This is important and is a good investment.

I am a fan of going deeper with the skill set that is already getting you paid. For example, if you’re working in web development today, learning another popular JavaScript framework is a good idea.

Choose wisely, and if you decide to dig into something totally new, and I know some of you will, just be sure it’s a worthy investment of your time and talent. Remember: You are a business.

Skill and experience will get you paid, but time is your greatest asset. Treat it like money.

Join the Motivated Code Pro Community

Yes, please sign me up for the MCP community.   I don't want to miss any articles or videos about advancing my software career and achieving work life balance!


Part 1 of 6 – 5 Keys To Becoming a Successful Consultant as a Software Developer

Part 1 - Why I Became a Consultant

This article was also published at simpleprogrammer.com

If you would like to read the transcript for this video, click here.

This is part 1 of a 6 part series:

Part 1 – Why I Became a Consultant

Part 2, Key 1 – Your Skill and Experience

Part 3, Key 2 – Writing for Blogs and Posting on Social Media

Part 4, Key 3 – Being Able to Find work

Part 5, Key 4 – A Good CPA and Business Attorney

Part 6, Key 5 – Welcome to Sales and Marketing

When I left my chief information officer (CIO) position in 2007, I wanted to return to the purity of software development. The work of software development—programming—was my first love by a very wide margin, and after a few years as a CIO, I came to hate the day-to-day tediousness of budgeting and more budgeting, and defending that budget; performance evaluations; personnel management; endless meetings to plan and organize, and then scheduling the next round of meetings to ultimately arrange yet another series of meetings. Rinse and repeat.

In my earlier senior management days, I was ecstatic to participate in guiding the steps of the company and our department. I loved being involved in decision-making processes for software and hardware acquisition, high-level business planning, and the subsequent staffing and project development processes to ultimately meet the goals of the business. All of that was fun and exciting. For a while.

After a period of time, though, I realized that I am not the guy who can evolve completely or comfortably out of software development. I know lots of people who have happily hung up their programming duties in favor of a management position. That’s great for them, but I am not that guy.

I found that I could no longer participate in the things that advanced my career in the first place. The things that got me promoted through the ranks and to the roles that I aspired to were the very things I had to relinquish. Being a good software developer got me promoted right out of being a software developer. After a while, it just didn’t make sense to me.

I missed software development more than I liked the status, money, and responsibility that came with my nice big title. I started asking myself what I really wanted to do. I had more or less achieved what I thought was the endgame for software professionals. Heck, I was a CIO. What was left?

That was a hollow thought for quite a while. I was miserable.

By that time, I had been hiring consultants, contract programmers, freelancers—call it what you will—for years. I, too, had been in and out of contract and consulting work at times over the years.

Then it hit me. Why not consult? Why not start my own consulting and contracting business? Wasn’t that the dream in the back of my mind all along?

I got excited! I mused, I plotted, and I daydreamed: I would write code for various customers. I would help companies make good systems decisions and then I would help them create their software. I would bring my experience as a software developer and a senior manager together and help companies achieve their software and technology goals. I would have fun again! I would be great at it! They would love me!

It all made perfect sense. It seemed so simple.

Just one problem: How? And where do I start?

How and Where Do I Start?

As I thought about it, there were endless “hows” to deal with:

  • How do I stay busy enough to survive, to thrive?
  • How do I market and sell?
  • How do I close deals when I find customers?
  • How do I price my offerings?
  • How do I find additional programming resources?
  • How do I manage finance, taxation?
  • How do I handle legal issues?
  • How do I grow my company?
  • How do I manage contracts?
  • How do I stay relevant technologically?

And that is only 10 questions! I could increase this list ad infinitum.

Within each of these “how” questions are a conceivably endless list of more questions.

Gulp …

Back in 2007, when we first started our company, Pinch Hitter Solutions, there was not a ton of information on the web about how to start a software development consultancy.

I had my career as a software developer, and my experience as a senior manager and CIO. I knew what buying assets and services looked like. I was skilled as a Java and JavaScript developer and I had a ton of AS/400 and RPG experience; I knew how to write code, manage teams, and run projects.

Even with all my experience up to that point, considering the list of “how” questions above, the skills I started with were not nearly enough. Not even close.

Nevertheless, I began my journey with what I had to work with, which was really just myself. My wife and family believed in me, and my experience in corporate America was certainly helpful, but ultimately I had a lot to learn. A whole lot. And that is a vast understatement as I look back.

By the end of 2017, I began to reflect on all of the lessons I had learned in my journey as a consultant. And there had been many!

I asked myself how I could be helpful to others. What could I do for those that might be considering a walk down the same path? That would be the path of leaving a relatively stable life in corporate America to live in the wild, Wild West of consulting, contract programming, self-employment, and business ownership. And, oh yeah, marketing and sales.

Earlier this year, after a lot of thought, consideration, and research as to how I might do this, I started a blog and a YouTube channel of the same name (Motivated Code Pro—links below). Both of which were inspired and encouraged in part by the work of John Sonmez—his SimpleProgrammer.com blog and YouTube channel were extremely helpful to me.

In the interest of space and time, I have distilled a lot of experience down to just five keys that will help you become a successful software development consultant.  Stay tuned for the next article in this series.  

Join the Motivated Code Pro Community

Yes, please sign me up for the MCP community.   I don't want to miss any articles or videos about advancing my software career and achieving work life balance!


5 Keys Transcript Part 1 of 6

Back to Part 1 - 5 Keys To Becoming A Successful Consultants as a Software Developer

Part 1 – Why I Became a Consultant

Transcript for Part 1

Hey Everyone Scott with motivatedcodepro.com
Today I am excited because we’re going to start a 6 part series about how to become a successful consultant as a software developer which includes 5 Keys to becoming a successful consultant as a software developer, stay with me.

Alright, thanks for coming back I am glad you’re here.
Today is part one of a six part series on how to become a successful consultant as a software developer.

And today, I want to talk about why I became a consultant, and how I got to the place where I am consulting, and so a little bit about my journey.

And to begin with, we’ve been running this consultancy called Pinch Hitter Solutions for 11 years. And so I’ve learned a lot over the years, and what I wanted to do and the reason I’m doing this, the reason, the original reason for the whole YouTube channel was really to share my experience and to help other people sort of avoid a few pitfalls and to make efficient steps as they work through their process of building their careers in independent contractor or as a freelancer or as a consultant so that’s what this is all about and that’s what this series of videos is about.

And so, about me, OK so when I was really young I fell in love with programming.
You could say I lived to program for a long time, it was the reason I got out of bed for years and I really loved that. And as a result of working really hard I progressed through the corporate ladder and I at some point learned to manage people, and I was still very technical and so I really, really enjoyed all of that.

And then, I was offered a CIO position and this is almost maybe 18 years in, so it was a lot of time and I’d done a good bit of consulting and contracting along the way myself but at this point this was like the end game, man, this was IT.

I was going to be the CIO. So I spent four years in that role and I loved it at first.
And even before my CIO roles, and other senior management roles, the idea of participating in the way we grew the company, the way we put projects together that affected the bottom line (and that’s a big deal) and so that was exciting to me.
But I still had my hands in it, so when the CIO job came along, after awhile it became fairly clear to me I could not really program and be an effective manager.
So I worked a ridiculous amount of hours trying to keep my hands in it and trying to satisfy the management responsibility that I had and it was just too much.
And I had to look in the mirror one day and say “I don’t like all of the strategic planning and meetings, to go to meetings, and plan more meetings to schedule the next meeting” and all of that rinse-and-repeat stuff.

At some point I was just very unhappy and I realized, like an epiphany, that programming and the things that sort of moved me along in my career were the very things that I as a CIO really shouldn’t do, really couldn’t do, and be an effective manager.

So you could say being a good programmer got me promoted right out of being a programmer. And that was a miserable thought for me, and I didn’t like it, and I had to be honest with myself and set my ego aside, and admit that I really missed programming and the heart of software development more than I liked the title and the responsibility, and the money and all the stuff that comes with that.

It just wasn’t me. I’m not the guy that can evolve out of software development and keep my hands out of it.

And so that really didn’t leave a lot of choices.
I could back up. I could take a different job as a software developer, or somewhere kind of between software developer and senior manager/CIO kind of stuff. There’s plenty of roles where you can manage and manage the technology pieces and still be involved in software.

But I thought, what could I do that’s different, right?
So along the way and over the years, I had this idea…
Check out this video I wrote about a piece of software that I wrote {____} and I wanted to have a software company and so having a consultancy was sort of in that same vein and I thought, “Man I could do that”. I could become a Consultant.

I had been hiring consultants and contractors. I knew what they were about and I understood the requirements and the skillsets and all of that so I thought OK I’m doing to do that.

And you know I was super excited and spent months thinking about it in fantasy land thinking about how I was going to help other people solve their technology problems, I had a lot of experience building software,  I was a skilled Java and JavaScript developer, with a lifetime of AS400 programming and RPG, CL, and all that other technology stuff in addition to that so I felt like I had a lot to offer.

But still, there were a lot of HOW questions.
(I’m going to refer here to my board here so I can read some of this off)
Here are ten HOWs that I struggled with, right?

1. How do I stay busy as a consultant?
How do you find work, essentially, right?
2. How do I market and sell?
3. How do I close deals when I have an opportunity?
What if I am competing with other consultants, and companies, and consultancies?
4. How do I price my offerings?
You know, with different geographies, and different parts of the country all of that is in play. Right?
5. How do I find additional programming resources (is number 5)?
If I need to expand my group, over time, which we did in our company.
6. How do I manage finance and accounting?
That’s a big one, man, don’t underestimate that one.
7. How do I handle legal issues?
You know, when contracts are put in front of me, how do I manage those?
8. How do I grow my company beyond just me?
(as Joe Freelancer, or Scott Freelancer, right? Scott FREE-lancer?)
9. How do I manage contracts?
And that sort of touches on the legal part but there’s more than just the legal stuff in that  that’s  you know the legal stuff that is required of you is part of that too like what they want, what you expect, and when you’re going to get paid, and a lot of contract stuff.
10. How do I stay relevant technologically?
With the other things I just mentioned, the first nine, there’s a lot there, and so staying current with technology as you manage all those moving parts is complicated.

And I am going to talk about all of that in the subsequent videos.
And so, how I evolved to this Youtube channel, how I evolved to do this at all, was the idea that at the end of last year I was thinking about all the lessons I had learned and I thought “Man, when I started there just wasn’t a lot out there about how to do this” about how to grow a consultancy, how to become a consultant out of gee find work and stay busy. It just wasn’t…
In 2007, I didn’t see anything to be honest. I may have missed it, but I didn’t see it.
So to me it’s been a lot of blood, sweat, and swearing, a lot of late nights and early mornings, and just a lot of work. And sometimes, a lot of swing and miss at things, you know I would try and they weren’t always successful but I’ve learned a lot of lessons and so this series of videos and this Youtube channel in specific is really about how do I help somebody else skip a few of the problems that I’ve encountered.

You know, and I can put some perspective and somethings in front of you to help you take that step if you’re willing to do it and you’re wanting to do it. You really have to ask yourself if you wanting to do it.
You’re really have to ask yourself if you want to do it.

And I am going to talk about all of those in the next 5 videos, go to motivatedcodepro.com check out the blog entry for this post, and I have an E-Book on this whole series that you can download as well or that you can have emailed to you.

Anyway, I’m Scott with Motivated Code Pro, I’ll see you on the next video, for Video #2 of this 6 part series, Keep coming back!

Join the Motivated Code Pro Community

Yes, please sign me up for the MCP community.   I don't want to miss any articles or videos about advancing my software career and achieving work life balance!


Top 10 Programming Languages for 2018 – 2019

Top 10 Programming Languages for 2018 – 2019

Top 10 programming language lists are a popular additive to the software development culture.  Each year, various sites add to and influence the collective opinion of software developers everywhere. 

I’m always excited to see what is trending and what is fading.  Since 2010 or thereabouts, JavaScript has grown to new heights both with frontend frameworks and with its addition of backend development and the inclusion of even more frameworks for the server side.

Also, since about 2014, Apple’s Objective C, for example, once extremely popular and highly sought after by employers has slipped down, and off in many cases, of the radar in favor of Swift.

Being up one year and down the next is part of the technology landscape.  Some languages sparkle then fade, some shine for decades. 

As a software lifer and long term consultant, I propose that you focus on the language or languages that are going to get you paid and keep companies seeking your skillset. 

In this article, I will present the Motivated Code Pro Top 10 programing languages for 2018 and 2019.  In addition to my list, I have included a summary of Top 10 lists from 10 other popular software related websites.


It is very interesting to see the similarities in the lists but also the differences.  I’ll leave you in suspense as to what those are and jump into the Motivated Code Pro Top 10.

Motivated Code Pro Top 10!

10 – C

C is still very widely used.  Not essential to web development but there continues to be a lot of work for C developers.   C is used for embedded systems, operating systems, development of new languages, and graphics and games. 

9 – C++

C++ is a super set of C.  A little broader audience in terms of jobs.  C++ is also used in embedded systems, games, graphics, web browsers, medical and engineering applications.

C and C++ have been used for scripting MySQL, one of the most widely used database management systems. C and C++ based software help form the backbone of various database-based enterprises, such as Google, Wikipedia, Yahoo and YouTube – to name a few.

8 – Swift

When it comes to mobile development, Swift is the first thing Apple wants developers to learn.  With Objective C on the way down in terms of popularity, Swift is said to be Objective C with out the C.  No memory management and no pointers.

Some good examples of mobile apps built with Swift: Firefox iOS, WordPress for iOS, Swift Radio – an open source radio station app, PixPic – a photo editing app – to name a few. 

7 – PHP

In existence since 1994, PHP continues to be incredibly widely used.  Big time sites like Facebook, Wikipedia, Tumblr and last but certainly not least, every WordPress site on planet earth was built with PHP.

PHP has lots of popular frameworks including Laravel, Phalcon, Symfony, CodeIgniter, Zend. 

This is a good time to add my theory about frameworks:  for every 3 problems a framework solves, it introduces 1.  Still a very good deal and certainly speeds development and helps build to a standard but not a panacea.

6 – Python

Python is generally easy to learn and incredibly flexible.  Born in 1991, Python has a design philosophy that emphasizes code readability, notably using lots of whitespace, making it easy to look at.

Python is used for web development, GUI development, scientific and numeric programming, good old fashioned business software development, and systems administration.

5 – C#

Micorosoft’s answer to Java.  What’s more though is that the Microsoft stack, including C#, .NET framework, SQL Server, Visual Studio, and Foundation Server are all beautifully integrated. 

There are tons of companies using C# and of course there are tons of jobs for C# developers, not to mention and endless list of applications built with C# and processes that will ultimately be built with C# in the future.

4 – Java

Java is one of my personal favorites and is still, by most counts, the most widely used programming language on the planet. 

Business applications, web applications, application frameworks like Spring and Hibernate, and integrated systems are just a sample of what gets done with Java.  Your refrigerator or car stereo system might be run on Java. 

There will be lots of Java jobs for the foreseeable future.  I certified as a Java Programmer with Sun Microsystems back in May of 2000 and I have never struggled to find work as a Java contractor or consultant.  That was after a fairly long career as an AS/400 RPG programmer. 

3 – JavaScript for the backend

Up until the past few years, JavaScript was thought of as an exclusively frontend language.  However, thanks to the flexibility and speed of JavaScript, it has been widely adopted via node.js as an extremely viable backend language option. 

Popular frameworks have been built for it including Express.js, LoopBack, Meteor.js, and Hapi.js to list just a small sample.  Additionally NoSQL databases like MongoDB and CouchDB  are widely used practical alternatives to traditional enterprise SQL databases. 

2 – JavaScript for the frontend

An entire post and video could be done on JavaScript frameworks both for the frontend and for the backend.  Programming with JavaScript for the frontend is pretty analogous to programming JavaScript through a framework. 

There are a lot of really good frameworks including React, Angular and its various versions, Ext JS (my personal favorite), Vue.js, Ember to list just a few from the groundswell of frontend frameworks.

You can’t go wrong with any of the frameworks listed here.  The momentum of JavaScript is unparalleled and shows no signs of slowing.  If you don’t know a JavaScript framework and you work in web development then it is time to learn one.  Even if you consider yourself more of a backend developer, you need to do this!

This is important and goes a long way toward keeping you paid. 

1 – The language you work in today!

I meant for this to be a bit counterintuitive.  I think most of us peruse these lists looking for what the rest of the world thinks is the next big thing. 

I am no exception. 

No one wants to feel like the choices they’ve made suck, rather we want to feel like the languages we’ve committed to are viable and thriving; that corporations (should be read as “customers” and “employers”) are investing in the things you have expertise in.  

On the other hand, if we determine that the world is moving away from our primary skill then we need to start learning something new immediately. 

Motivated Code Pro is devoted to improving the careers of software development professionals everywhere, with a particular emphasis on consulting and contract programming.  As such, my desire for you is to honor the language(s) you work in today by going deeper with what is getting you paid right now.  This is valuable to you and to your customers and employers. 

Don’t miss an opportunity to sharpen the skills that are already money for you. 

This is important.

At the same time, I think you should spend 30 minutes every work day with what you feel is the next skill to learn.  This is also important.  Choose just one.  Choosing multiple new languages is a fast-track to being overwhelmed.  Working on one new skill for 30 minutes a day may not seem like much but over time it will add up.  You will get better at it and you will be able to apply it successfully.

That wraps up the Motivated Code Pro Top 10. 

In this next section, I provide a brief summary of the op 10 from each of the 10 websites shown above.  I also included a relevant quote from each site that provides some insight into their thought process.

Stack Overflow

Stack Overflow's Top 10 Article

The link above takes you to the most popular technologies section of Stack Overflow’s posting but within the article as a whole there is a ton of valuable information to be consumed.  In the interest of space, time and the focus of my article, I have included just the Top 10 “Programming Scripting and Markup Languages.”  However, Stack Overflow’s list contains 25 entries on their programming, scripting and markup languages list. 

According to Stack Overflow:

For the sixth year in a row, JavaScript is the most commonly used programming language. Python has risen in the ranks, surpassing C# this year, much like it surpassed PHP last year. Python has a solid claim to being the fastest-growing major programming language.

Stack Overflow


Here is a quick look Stack Overflow's Top 10:

  1. JavaScript
  2. HTML
  3. SQL
  4. Java
  5. Bash/Shell
  6. Python
  7. C#
  8. PHP
  9. C++
  10. C

FreeCodeCamp

FreeCodeCamp's Top 10 Article

According to FreeCodeCamp:

This is not a “top hottest languages” post throwing around a bunch of names and buzzwords.


This is an objective and practical review of the current state, tendencies, and safe near-future predictions of the IT industry at the start of 2018.


It’s based on statistical data from various trusted sources and is the result of a two-week period of in-depth research.

FreeCodeCamp


Note that each entry on FreeCodeCamp’s list also provides:

  • The TIOBE Rating
  • GitHub Octoverse rating based on GitHub pull requests
  • US Salary numbers from Indeed.com
  • US and World Salary on StackOverFow

Here is a quick look at FreeCodeCamp’s Top 10.

  1. JavaScript
  2. Swift
  3. Python
  4. Java
  5. C++
  6. Ruby
  7. Rust
  8. Elixir
  9. Scala
  10. R

Hacker Noon

Hacker Noon's Top 10 Article

According to Hacker Noon:

Programming is something vast and rather individual as each developer chooses tools that are most convenient for them. However, certain languages, platforms and frameworks have claimed themselves as one of the easiest and most efficient to use. Thus we have collected for you top-10 programming languages loved by developers nowadays.

Enter your text here...

Hacker Noon


Here is a quick look at Hacker Noon’s Top 10:

  1. Python
  2. C
  3. Java
  4. C++
  5. C#
  6. R
  7. JavaScript
  8. PHP
  9. Go
  10. Swift

TIOBE Index for June 2018

TIOBE's Index's Top 10 Article

According to TIOBE:

The TIOBE Programming Community index is an indicator of the popularity of programming languages. The index is updated once a month. The ratings are based on the number of skilled engineers world-wide, courses and third party vendors. Popular search engines such as Google, Bing, Yahoo!, Wikipedia, Amazon, YouTube and Baidu are used to calculate the ratings. It is important to note that the TIOBE index is not about the best programming language or the language in which most lines of code have been written.

Tiobe



TIOBE is particularly interesting in that it includes a Top 100 programming languages, it reflects changes in popularity from month to month and year to year, additionally it includes a Very Long Term History and a Programing Language Hall of Fame.

Nevertheless, here is a quick look the TIOBE Top 10 for June 2018:

  • Java
  • C
  • C++
  • Python
  • C#
  • Visual Basic .NET
  • PHP
  • JavaScript
  • SQL
  • R

PrepAway

PrepAways' Top 10 Article

According to the PrepAway article:

This article is to make you aware of the current trend in programming languages, which language is in demand and how does know a programming language affect your prospects.

PrepAway



PrepAway also includes a level of difficulty, with 1 being the least difficult and 5 being the most difficult. 

Here is a quick look at the PrepAway Top 10:

  • Python (Difficulty 1)
  • PHP (Difficulty 2)
  • Ruby (Difficulty 2)
  • JavaScript (Difficulty 2)
  • C (Difficulty 3)
  • C# (Difficulty 3)
  • Java (Difficulty 3)
  • Objective-C (Difficulty 3)
  • SQL (Difficulty 3)
  • C++ (Difficulty 5)

TechRepublic

TechRepublic's Top 10 Article

TechRepublic’s list is interesting in that it rates not just the Top 10 programming languages, rather it rates the Top 10 programming languages and in demand skills. 

With that in mind, according to TechRepublic:

Open source has become the industry model for practical software development, and its commercial success has been driven in part by adoption from large tech companies such as IBM and Oracle. Walmart and Verizon also rely on open source programs, and host their own open source projects.

TechRepublic



Here is a quick look at TechRebublic’s Top 10 programming languages and in demand skills:

  1. Java
  2. Python
  3. Git
  4. JavaScript
  5. Node.js
  6. Docker
  7. AngularJS
  8. Jenkins
  9. Amazon Web Services (AWS)
  10. Agile

Note that only Java, Python an JavaScript are actual programming languages.   The remainder are frameworks or in demand technologies according to TechRepublic. 

gitconnected

gitconnected's Top 10 Article

According to gitconnected:

Investing your time into a language is always a risky. Of course we do it because we love it, but what makes it even better is finding real-life opportunities to use what we learned. We all wish we could learn everything, but if you focus on the languages in this list, it will ensure that you are adding tools to your skill set that will be used for years to come.

gitconnected



Here is a quick look at gitconnected’s top programming languages to learn in 2018:

  1. TypeScript
  2. Go
  3. Python
  4. Kotlin + Swift
  5. SQL
  6. Rust
  7. Elixir

InformationWeek

InformationWeek's Top 10 Article

According to InformationWeek:

While programming language popularity is fleeting, knowing how to solve algorithms will always remain one of the most important programming skills. "This is why we put such strong emphasis in learning algorithms at Coding Dojo," Misirlakis said. The languages may come and go, but the ability to problem-solve will always be in demand, he explained. "Aspiring and existing developers must learn coding’s common building blocks and ultimately become fluent in multiple languages to have the adaptability and flexibility for a successful career."

InformationWeek


Here is a quick look at InformationWeek’s 10 most in-demand programming languages of 2018:

  1. Java
  2. Python
  3. JavaScript
  4. C++
  5. C#
  6. PHP
  7. Perl
  8. Swift
  9. R
  10. Rust

Simple Programmer

Simple Programmer's Top 10 Article

According to Simple Programmer:

The market will tell you what the trending programming languages are for the future. We must be aware of the trends and watching the news and the rise of new technology so we can adjust the sails on which programming languages to learn, especially in 2018 with a lot of new things coming up.

Simple Programmer



Here is a quick look at Simple Programmer’s Top 10:

  1. JavaScript
  2. Python
  3. C#
  4. Java
  5. PHP
  6. Go
  7. Swift
  8. Rust
  9. Kotlin
  10. C & C++

Coding DoJo

Coding Dojo Top Languages Article

According to Coding Dojo:

Software development is a dynamic field. New and in-demand programming languages, frameworks and technologies can emerge, rise to fame, and then fade away in the course of a few years. Developers need to constantly be learning new skills to stay relevant.

Coding DoJo



It’s worth noting that Coding Dojo’s list is based on job postings. 

A quick look at Coding Dojo’s 7 Most In-Demand Programming Languages of 2018:

  1. Java
  2. Python
  3. JavaScript
  4. C++
  5. C#
  6. PHP
  7. Perl

**** Top 10 Matrix at a Glance

Website      

10

9

8

7

6

5

4

3

2

1

Motivated Code Pro

C

C++

Swift

PHP

Python

C#

Java

Frontend JavaScript

Backend JavaScript

Your Current Language

Stack Overflow

C

C++

PHP

C#

Python

Bash/Shell

Java

SQL

HTML

JavaScript

FreeCodeCamp

R

Scala

Elixir

Rust

Ruby

C++

Java

Python

Swift

JavaScript

Hacker Noon

Swift

Go

PHP

JavaScript

R

C#

C++

Java

C

Python

TIOBE

R

SQL

JavaScript

PHP

VB.net

C#

Python

C++

C

Java

PrepAway

C++

SQL

Objective-C

Java

C#

C

JavaScript

Ruby

PHP

Python

TechRepublic

Agile

AWS

Jenkins

Angular JS

Docker

Node.js

JavaScript

Git

Python

Java

gitconnected




Elixir

Rust

SQL

Kotlin+

Swift

Python

Go

TypeScript

InformationWeek

Rust

R

Swift

Perl

PHP

C#

C++

JavaScript

Python

Java

Simple Programmer

C & C++

Kotlin

Rust

Swift

Go

PHP

Java

C#

Python

JavaScript

Coding Dojo

 

 


Perl

PHP

C#

C++

JavaScript

Python

Java

Join the Motivated Code Pro Community

Yes, please sign me up for the MCP community.   I don't want to miss any articles or videos about advancing my software career and achieving work life balance!


Java Examples to Create JSON Arrays and JSON Objects

In the spirit of creating simple, copyable Java based JSON examples, here are some JSON Array and JSON Object processing samples. To keep it super easy to read, there is no database access or any other logic to clutter up the simple use cases presented here.

These examples are using the json-simple api that is common in many Java implementations.

Get the json-simple jar:  download json-simple-1.1.1.jar

Get the source for json-simple on github: download json-simple source

Check out the Google archive for more info on json-simple here: Read about it on Google

If you would like the eclipse project that contains the code below:  download java-json-simple eclipse project

Check out json.org for a long list of JSON parsers across many different languages.

 

This example creates a simple, single record style JSON Object.

 

This example creates an outer JSON object for “root” containing a JSON Array which contains 2 record style JSON Objects.

 

This example creates an outer JSON object for “root” containing a JSON Array which contains 2 record style JSON Objects.  Each of the record style JSON Objects contains a JSON Array.

Editing Files Outside of the Eclipse Workbench

Like a lot of people, I work with at least two editing tools in my day-to-day programming.  For Java I generally use Eclipse but for JavaScript I use vscode because I think it's lightyears ahead of Eclipse's JavaScript tooling.  Other people use other editors for their own reasons but if the files belong to an Eclipse workspace, you need to tell Eclipse to keep an eye out for external changes made to its own project files.  

Otherwise Eclipse will simply not see changes made by other editors.

Here is a link to the Eclipse documentation that deals with this.

In Eclipse, goto Preferences->General->Workspace 

On Windows, Window->Preferences->General->Workspace 

On Mac, Eclipse->Preferenes->General->Workspace

Check the box for "Refresh using native hooks or polling"

Java – Which JDK Version was Used to Compile

java.lang.UnsupportedClassVersionError

The above error means you have deployed code that was compiled from a more recent JDK than the JVM you are deploying to.

Which version of java built my jar or *.class file?

Maybe you have supporting jar files that contain code from Java 1.8 but you are deploying to java 1.5 – that is when you’ll see java.lang.UnsupportedClassVersionError.

Most of the time you will be aware of the JDK and JVM versions you are working with but occasionally you may have supporting code that will need to be recompiled at an earlier version. If you have lots of code, the question will be which code needs to be recompiled.

You can determine this by unzipping one class from each jar file and testing the version like so:

// on Windows run this
javap -v SomeJavaProgram.class
// on Mac, Linux, Unix, run this
javap -v SomeJavaProgram.class | grep major

If running from Windows, you will get a fairly large amount of output. You will find the text, “major version” within the first 10 lines.
If running from Mac, Linux, Unix, you will see something like this:
major version: 48

Regardless of OS, you can map the Major Version back to the JDK with this list:

45.3 = Java 1.1
46 = Java 1.2
47 = Java 1.3
48 = Java 1.4
49 = Java 5
50 = Java 6
51 = Java 7
52 = Java 8
53 = Java 9

Sencha npm Tooling With Ext JS 6.6

Sencha tooling with npm has been announced for Ext JS 6.6.

This is awesome news!  This post is partly news item and partly tutorial.  As of June 4, 2018, Sencha made an early version of their new tooling available to their MVPs.  As a member of that group, I wanted to share some state-of-the-moment news and information for the new npm based Sencha tooling.

To learn about the Sencha MVP program and to become an MVP yourself, checkout this link: Sencha MVP Program.

Ext JS 6.6 is on the horizon and with the new release comes node packaging and node tooling to build your application.   See this link for a detailed discussion: Top Considerations for Web Development in a Free Open Source World.

This is super exciting because the same npm based build concepts in use with React, Angular and other frameworks are now in beta for Ext JS Modern and Classic.  Hooray!!  This breaks us out of the Sencha Cmd silo and makes Ext JS feel a lot more open.

To begin, make sure npm is current on your system. with npm -v 

Determine the the version of node and npm currently available here.

Get npm here if you don’t have it.

Your Sencha forum user id and password is required to get access – but first you must be a member of the Sencha MVP Program.

When prompted for user id, use your sencha support id, but replace the (at sign) @ sign in your email address with (two dots) ..

example: myemail..gmail.com

You will be asked for you Sencha forum password

You will be asked for your email address, this is your Sencha support forum email address.  Same as above but with the @ sign, not the dots

// login here!
npm login --registry=http://test.npm.sencha.com --scope=@sencha
// then install from here
npm install -g @sencha/ext-gen

Depending on your setup, for mac or linux, you may need to run with sudo.

The above screenshot shows what you will see after a successful installation.

Below, is an easier to read and copyable version of the screenshot above.

Welcome to Sencha ExtGen v0.0.191 - The Ext JS code generator
Quick Start:
ext-gen app MyAppName
ext-gen app -i
Examples:
ext-gen app --auto --template universalclassicmodern --classictheme theme-triton --moderntheme theme-material --name CoolUniversalApp
ext-gen app --auto --template classicdesktop --classictheme theme-triton --name CoolDesktopApp
ext-gen app --interactive
ext-gen app -a --classictheme theme-graphite -n ClassicApp
ext-gen app -a -t moderndesktop -n ModernApp
Run ext-gen --help to see all options

I conducted some tests based on the above examples and they were all successful.   They all built successfully and ran as expected.  The -i or –interactive options prompt for the template type but does not (yet?) prompt for the theme.

Below is the output from the ext-gen –help with some color coding to draw your attention to the current list of templates and themes.  Think of templates as the type of app you are wanting to create:  classicdesktop, moderndesktop, universalclassicmodern, universalmodern – see the template descriptions in red below for more details.

Themes are out-of-the box ways to effect and control the look of the app.  Here is a list of the stock themes available in Ext JS 6.5.3 (not sure if this is the same list that will be available for Ext JS 6.6 or not).  There is a lot to say about themes, creating custom themes and so forth that are beyond the scope of this article but I’m sure Sencha will move this forward the way they always have.

Sencha ExtGen v0.0.191 – The Ext JS code generator

Quick Start: ext-gen -a

ext-gen app (-h) (-d) (-i) (-t ‘template’) (-m ‘moderntheme’) (-c ‘classictheme’) (-n ‘name’) (-f ‘folder’)

-h –help show help (no parameters also shows help)-d –defaults show defaults for package.json-i –interactive run in interactive mode (question prompts will display)-t –template name for Ext JS template used for generate-c –classictheme theme name for Ext JS classic toolkit-m –moderntheme theme name for Ext JS modern toolkit-n –name name for Ext JS generated app-f –folder folder name for Ext JS application (not implemented yet)-v –verbose verbose npm messages (for problems only)

Examples:ext-gen app –template universalclassicmodern –classictheme theme-graphite –moderntheme theme-material –name CoolUniversalAppext-gen app–template classicdesktop –classictheme theme-graphite –name CoolDesktopAppext-gen app –interactiveext-gen app -a —classictheme theme-graphite -n ClassicAppext-gen app -a -t moderndesktop -n ModernApp

Templates:You can select from 4 Ext JS templates provided by Sencha ExtGen

classicdesktop (default)This template is the default template in ext-gen. It contains 1 profile, configured to use the classic toolkit of Ext JS for a desktop application

moderndesktopThis template is similar to the classicdesktop template. It contains 1 profile, configured to use the modern toolkit of Ext JS for a desktop application

universalclassicmodernThis template contains 2 profiles, 1 for desktop (using the classic toolkit), and 1 for mobile (using the modern toolkit)

universalmodernThis template contains 2 profiles, 1 for desktop and 1 for mobile. Both profiles use the modern toolkit.

Theme Names:classic themes: theme-classic, theme-neptune, theme-neptune-touch, theme-crisp, theme-crisp-touch theme-triton, theme-graphitemodern themes: theme-material, theme-ios, theme-neptune, theme-triton 

And finally, here are the npm commands I used to build for testing and production the way Sencha Cmd has historically done.

cd into the app folder and execute the appropriate build command.

npm run build-desktop-testing
npm run build-desktop-production
npm run build-phone-testing
npm run build-phone-production
This is a brief state-of-the moment look at npm for Ext JS.  I’m excited to see what comes next and I will continue to provide updates as things move along.

To review Sencha Cmd for Ext JS 6.5.3 (pre npm and pre ExtJS 6.6), take a look at the article I did on Ext JS – Create Workspace and/or Classic or Modern or Universal App in 5 minutes

Check out Pinch Hitter Solutions at phs4j.com.  
Check out Scott's youtube channel at Motivated Code Pro.

Working in Crappy Code

Writing code. Most of the time, finding a reason to stay motivated with good attitude is fairly easy – or at least doable.

Crappy Code Image

There are certain times when a good attitude is challenged in a big way. This post is about one of those challenges…working in crappy code.

Here’s how it happens: You start a new job or contract and you are starting to feel a little less like the ‘New Programmer’.  You’re in a team meeting. Then it happens.  You hear a whispered voice in your ear saying, “You better hope you don’t have to work on XYZ project! That code is crap! It’s had so many hands in it, it’s impossible to maintain.” You know you’ve been told this for a reason – you’re the new person. You end up in that code base.

Today, I will talk about three topics having to do with crappy code:

  • How code becomes crappy code.
  • Looking at crappy code from a different perspective.
  • Tech tips for working in crappy code.

How Code Becomes Crappy Code

In the interest of full disclosure, I’m going to make a confession here. I had to work in code that was developed by my own team.  I was reviewing the codebase for an app designed by my company. I needed to write up a quote for a feature enhancement. As I scanned more of the classes and methods, I wanted to scream “What were we thinking??” I was in the middle of crappy code and the buck for that stopped with me. How could I have let this happen. The shame of it all.

Then it hit me. I remembered the events that occurred during the development of this particular app, which I will share as part of my confession.

We’d written a significant enterprise mobile app for a manufacturing company. The design incorporated their specific manufacturing system as the data source in the back end.  We built the server using Java and developed the iPad client using Sencha Touch.

All of the pieces of the app had fit together extremely well. We were nearly done with development and were expecting a ‘go live’ date in the near future. Instead of a ‘go live’ date, the company went through a significant change and brought in a different manufacturing system as the backbone of their data infrastructure.

The look & feel remained the same, but everything having to with data was different.You’ve seen the pit crew at work during the Indy 500, right?  Well, they had nothing on us as we re-plumbed the entire application.

 

We became app dev speed demons. We bent existing code into pretzels to work with this new database setup. We had a long way to go and a short time to get there (yes, I know that’s from Smokey and the Bandit). Code readability devolved into nothingness with each retrofitting.

Software Developer Super HeroThen we were done. We were heros! The app worked. The UX was the same. Users would never see the massive reconstruction that had taken place.  We had also accomplished something else… we created crappy code.

This true story is a perfect example of how crappy code is born. The customer thought we were heros for retrofitting their new system into the enterprise app and we sorta thought the same thing. Yet, a year later I looked at the work of heros and thought ‘What were we thinking?!’

Business decisions are seldom based on whether or not the codebase of an application will be forever stigmatized with it’s new status of crappy code. Honestly, the business side doesn’t care what the code looks like as long as the application does what they want it to do and it is done before they finish writing up the requirements, at least it can feel like that.

The CIO, dev manager and programmers care about creating crappy code, but they placate themselves by saying ‘We will come back to that when we have some down time.’  We all know that there is never a down time in software development shops. Hence, crappy code.

Looking at Crappy Code From a Different Perspective

Even crappy code was someone’s Great Idea. Every piece of code has a long history that stems from changing business requirements, changing infrastructure, user requests and bug fixes. Of course, when you first lay eyes on your assigned project that includes some crappy code, spaghetti code or whatever you want to call it, you don’t know it’s history.  You won’t know that you may be looking at the work of heros!

Of course not all crappy code has such a glorious history. Over time a codebase is affected by changing business requirements, changes in laws, sales ideas that were good (and some that went rogue), user requirements, new features and the list goes on and on. The thing to remember is the crappy code you are looking at could be the result of heros at work!

There’s opportunity in crappy code.

I’ve contracted and consulted for a long time. Many times i’ve landed feet first in crap code that was built 20 years ago by 20 different people across 20 different sets of changing requirements. I have learned to volunteer for crappy code duty for the following reasons:

  1. I’m going to learn a lot about the system. I may learn enough to quickly become a SME.
  2. I earn street cred with the project managers and other people running the business.
  3. A smile while volunteering, makes me the go to guy and that is good for my business.

I think becoming a crappy code slayer is good for your career. It increases your value and your level of expertise, both of which result in larger income numbers for you.

A word of caution:

Don’t even whisper ‘This is total crap code!’ anywhere in the shop. Never insult the code because you don’t know what it’s been through. Oh, and your project full of crappy code just might have been written by heros and one of those heros might be sitting at the desk next to yours.

Tech tips For Working in Crappy Code

Crappy Code Slayer BadgeMy advice is to:

  • Include concise comments as you are making your modifications or even when you discover the purpose of a mystery method.
  • Do your research and find out what was expected of the code and a complete picture of what will be expected of the code when you are done.
  • Find the elusive standards document, if one exists, and follow it.
  • Follow best practices so your code doesn’t become just another section of crappy code.
  • Leave lots of white space in the code, making it easier to read and work in.
  • Write your code with the thought that you may have to come back to it in a year. You don’t want to find yourself saying ‘What was I thinking!?’

People that work in crap code get better projects, along with more money as time goes on.  That’s a promise.

Ext JS – Create Workspace, Classic, Modern, Universal App in 5 Mins

This tutorial has been tested with:

Ext JS 6.5.3 Commercial

Ext JS 6.2.0 GPL  –  If you are using the GPL version, replace ext-6.5.3.57 with ext-6.2.0 below.  

1 – Downloads

Download the current version of Sencha Cmd:
Download Sencha Cmd

Choose DOWNLOAD with JRE INCLUDED (unless you have a good reason not to)

Windows version works the same way, though 64bit provides only the JRE INCLUDED version.

If you don’t have a commercially licensed version of ExtJS, download the GPL version from here: Download GPL Version of Ext JS  then check your email for the ExtJS Download Link.

If you do have a commercial license and haven’t downloaded it yet, you can download the most recent sdk from here: Download Commercial Version of Ext JS

Be mindful that ExtJS versions change frequently so replace the versions mentioned above and below with the current versions available when you are using these instructions.

Unzip the ExtJS sdk (ext-6.5.3.zip) to a convenient location (remember this location, you will need it later) – Sencha does not include a formalized installation process, you just just need to unzip the sdk to the desired location.

I unzipped mine to ~/motivatedcodepro  – You can unzip yours to wherever it’s convenient for you.

Assuming you are using ~/motivatedcodepro as your unzip location you will end up with this:

~/motivatedcodepro/ext-6.5.3.57 

You DO NOT need to create folder ext-6.5.3.57 on your own, unzipping ext-6.5.3.zip will take care of that for you.

2 – Now that the sdk is installed, lets create a Sencha workspace:

Skip this step if you don’t want or need to use a workspace.

sencha -sdk ~/motivatedcodepro/ext-6.5.3.57/ generate workspace ~/motivatedcodepro/starterworkspace

We are telling sencha cmd that the sdk is located at ~/motivatedcodepro/ext-6.5.3.57/

And to generate the workspace at ~/motivatedcodepro/starterworkspace  (starterworkspace folder will be created automatically)

Once completed, the runtime framework will be installed in starterworkspace.  This allows your projects to share the sdk and other assets.

cd ~/motivatedcodepro/starterworkspace

3 – Next, lets generate some starter apps.

Note that all of the sencha generate app commands shown below will create a “starter app” for you to experiment with.  You can  runt this starter app from the browser at the end of these steps.

Create an ExtJS classic app in a workspace:

sencha generate app --ext classic classicapp classicappflr

We are telling sencha cmd to create an ExtJS classic app called classicapp in folder classicappflr within the ~/motivatedcodepro/starterworkspace folder.

Create an ExtJS classic app without a workspace:

sencha -sdk ~/motivatedcodepro/ext-6.5.3.57/ generate app –ext classic classicapp /your/chosen/folder/classicappflr

We are telling sencha cmd where the sdk is located and to create an ExtJS classic app called classicapp in folder /your/chosen/folder/classicappflr

Create an ExtJS modern app in a workspace:

sencha generate app --ext modern modernapp modernappflr

We are telling sencha cmd to create an ExtJS modern app called modernapp in folder modernappflr.

Create an ExtJS modern app without a workspace:

sencha -sdk ~/motivatedcodepro/ext-6.5.3.57/ generate app --ext modern modernapp /your/chosen/folder/modernappflr

We are telling sencha cmd where the sdk is located and to create an ExtJS modern app called modernapp in folder /your/chosen/folder/modernappflr.

Create an ExtJS universal app in a workspace:

sencha generate app --ext universalapp universalappflr

We are telling sencha cmd to create an ExtJS universal app called universalapp in folder universalappflr.

Create an ExtJS universal app without a workspace:

sencha -sdk ~/motivatedcodepro/ext-6.5.3.57/ generate app --ext universalapp /your/chosen/folder/universalappflr

We are telling sencha cmd where the sdk is located and to create an ExtJS universal app called universalapp in folder /your/chosen/folder/universalappflr.

4 – Now let’s test our installation:

To test any or all of these apps, cd into the appropriate folder and execute sencha app watch:

cd ~/motivatedcodepro/starterworkspace/modernappflr  (or /your/chosen/folder/ if you're not using a workspace)

sencha app watch

This will start the sencha cmd webserver and watch utility (a whole other subject) and will allow you to test your newly created apps.

Note that the server is running on port 1841

Point your browser to:

 http://localhost:1841/modernappflr

**Note that for non-workspace apps, you do not need to include the app folder in the url (modernappflr in this case).  The app folder is only needed when running in a workspace so sencha app watch will know which app to load from the workspace.

 

All done!  Here you should see the following:

Your Hard Work in Software is Never Wasted

 

The year was 1989.  I was a young software developer working for a pharmaceutical distributor.  I programmed in RPGII and RPGIII at the time on an IBM AS/400 computer system.  Some of you historians will know of the AS/400 and the RPG programing language.  At the time I felt like the luckiest guy on the planet.  The AS/400 was hot stuff and would only get hotter through the 1990s.

In those earliest of AS/400 days, IBM had yet to build a decent search function into their basic database file utility.

I decided to see if I could build it myself – which, by the way, was way, way beyond my programming ability at the time.

After lots of trial and error in the form of blood, sweat and swearing, practice-practice-practice, and literally banging my head on the desk a few times, I showed the basic concept to my co-workers and they thought it was a great idea.  I felt super smart to have thought of it and to have gotten it as far as I had at that point.   I decided I would cash in on this amazing concept and soon-to-be software product.   I would start a company, sell software to the masses and ride off into the sunset.  (spoiler alert – it didn’t quite happen like that)

I spent every night and weekend on this project for about 5 months – that was on top of my day job and young family, including two very small children.

When it was finally done enough to share with the world, I placed an ad for my new software product in a trade magazine called “Data Network News.”  The software tool was called “HotKey400.”

I got a PO box and a business checking account for my freshly minted start-up so I could receive the many checks I would soon be cashing.   I had this fantasy that after the ad hit, I would open up the PO box and it would be stuffed with checks.  STUFFED with checks… can you imagine?

Well…after the ad hit, I waited about a week and when I finally walked into the post office, my heart pounding with excitement, exhilaration, stress and anticipation…

I put the key in, I opened the door and… NOTHING.  Nothing, nothing, nothing!  But two pieces of advertisement from the magazine my ad was placed with.   NOOOO!!

I was devastated.  All that hard work and no checks.  I was pretty green at the time and did not appreciate that people don’t just see an ad for software and pull out their credit cards and checkbooks.  No, they want to talk to you first – at least they did in those days, but that’s a whole other thought for a future post.

I had committed to the ad for a number of months and ultimately it did generate some interest.   Still, almost zero money made.

My first lesson in the software business was that while I might know a little about writing software, I knew absolutely nothing about marketing and selling software.

Fast forward to May of 1990 –

I got a call from a recruiter and after some discussion (coercion you might say) I decided to at least consider going on an interview with a fairly well known company in our town.  I wasn’t the least bit excited about it and I frankly did not want to go meet these people.  I had a decent job and plus I was still stinging from my recent entrepreneurial failure.

I got some pretty good advice from a coworker-become-friend who said, “hey, if you go on this interview you might find out you have a pretty good deal right here.  You have nothing to lose and besides, you never know what they might have for you.”

Ok, so I went on the interview.

I sat with two ladies who grilled me rigorously for at least a solid hour.   Midway through the interview it occurred to me that had it not been for the software I had recently built, there was simply no way I could have answered most of these questions.

Toward the end of the interview I shared my story about the software product, the hard work, the long hours, the ad in the magazine.  I wasn’t sure I should share such a thing, especially since it seemed like such a failure, but they seemed impressed.  That was the first time it occurred to me that maybe this software thing wasn’t the failure I had come to judge it as.

The women left the room and returned pretty quick with an on-the-spot job offer.  I was shocked.  They asked what it would take?  I threw out a number.  They agreed.  Done!  Wow.  I’m still amazed at that, even now.  This was not a fly-by-the-seat-of-your-pants company so I felt pretty special.

After sleeping on it, I accepted the position and for the next 3 years, they presented me with technical challenges and complexities that I never would have had the opportunity to work with in those early days of my career had it not been for this “failed” software product.

In 1993 my family and I left the state in hopes of stretching our dollars a bit further but it was a hard, hard decision to leave that company after what had happened there for me.

Looking back at my corporate career since then, this was easily the most impactful stop along the way, up to and including my CIO job which I held for 4 years between 2003 and early 2007.  Each stop along the way bringing more and different challenges, each of which had, in some small way, their roots in that piece of software, which I no longer thought of as “failed software.”

Fast forward to May of 2012 –

It had been 19 years since I left that company and 5 years since we started our own business as a software company and consultancy (another story for a different blog post) where we eventually consulted and did contract programming work for companies around the country.  See phs4j.com for more info.

In 2012 our salesman was actively prospecting for new customers and came to see me one day with an interesting lead.  He said, “I was talking to a company called x (the company I worked for in 1990-1993, which was half way across the country from where we are) and they have need for a mobile app…”

I said, “wow, no kidding!?!? I used to work there…”

After several months and the usual series of phone calls, proposals, negotiations and a visit to their site, we started what became a very long term contract that kept 4-5 people from our team busy for 4 years.   That was a big win for our company and ultimately all of it was possible because:

a) I had worked there in the early 1990s and there were people there that still remembered me.

And b) most importantly, this customer engagement had its roots in that failed piece of software from all those years ago!

Moral of the story – Your Hard Work in Software is Never Wasted.

There are always exceptions to stories like this and I have a few of my own but in the end, hard work is never wasted, if only for the lessons we learn that we can pass along to someone else.  That’s what its all about for me so when I get discouraged, overworked, tired and stressed out – too many late nights and early mornings – I think of this story and others like it for a boost and I try to remember my hard work is never in vane.  It is taking me someplace and probably to a better place than I had initially planned and hoped for.  And so it was with HotKey400 – that failed piece of software.

Scott Salisbury, Motivated Code Pro

Scott Salisbury is the creator of motivationalcodepro.com and the Managing Partner of Pinch Hitter Solutions, Inc – a software development consultancy focused on Java and Sencha ExtJS.  
See Pinch Hitter Solutions at phs4j.com.  
See my youtube channel at Motivated Code Pro.

 

5 Common Misconceptions About Becoming a Software Developer

 

5 Common Misconceptions About Becoming a Software Developer

Continue reading