tag:blogger.com,1999:blog-39350746842567155832024-03-12T20:00:44.473-04:00Josh KempHelping people land their first tech jobjoshuakemphttp://www.blogger.com/profile/15916453538115796012noreply@blogger.comBlogger260125tag:blogger.com,1999:blog-3935074684256715583.post-5583658500606455712019-04-26T07:50:00.000-04:002019-04-26T07:50:57.280-04:00How I am learning Machine Learning<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEvV4I_iYZZuj3MxkNFmhcu0iMUE7NF_huUL2tafAZtqY7UgCD0vy67rK3BO1EBV0ZIFHztovirntTSHuW4GrESRS2qHvpBUvoclTlRUoXVZ685iFHrEwKWLhRCffHmEMOGCUdE58TWiQ/s1600/ML_dominik-scythe-414905-unsplash.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="924" data-original-width="1600" height="368" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEvV4I_iYZZuj3MxkNFmhcu0iMUE7NF_huUL2tafAZtqY7UgCD0vy67rK3BO1EBV0ZIFHztovirntTSHuW4GrESRS2qHvpBUvoclTlRUoXVZ685iFHrEwKWLhRCffHmEMOGCUdE58TWiQ/s640/ML_dominik-scythe-414905-unsplash.jpg" width="640" /></a></div>
<br />
<br />
<br />
<br />
I have wanted to learn ML for a while but finally started learning hard core when I saw a former co-worker predict the price of Bitcoin. I decided to make a goal for myself, predict whether or not the stock ticker VIX was going to go up the following day.<br />
<br />
My Dad has been day trading and intra trading stocks for many years, but I have never had any interest in stocks as I didn't understand them. This past year that changed I started learning everything I could about trend trading stocks in October of 2018. In December I took $2,000 and put it into my UStocktrade account <a href="https://www.ustocktrade.com/">https://www.ustocktrade.com/</a> ( I have no affiliation ) and haven't looked back.<br />
<br />
Though I've had trading setbacks (losing 16% in my first month ), I have regained all of my losses and am up over 9% for my total account. I have tried several different approaches and strategies for trading stocks. Currently I like trading the VIX ( fear in the market ) and SVXY ( the inverse of the VIX ). Basically you play the stocks like a yo-yo, one goes up the other goes down.<br />
<br />
Long story short I have been reading charts, news, and guessing as to when I think the VIX will spike ( bad news in the world, Fed announcements, etc ). This has worked well enough, but I wanted to find a way to give myself an advantage.<br />
<br />
This gave me the perfect side project and motivation to learn ML for real. Having something I am passionate about would only help me to push through any ML challenges I would face. I did a lot of research online and finally signed up for Elite Data Science's paid course here:<br />
<a href="https://academy.elitedatascience.com/">https://academy.elitedatascience.com/</a> ( NOTE: I have no affiliation, and make no money from suggesting them ).<br />
<br />
The course was simply amazing and I highly recommend it to anyone who wants to learn ML in the shortest amount of time possible! As part of the course you build several ML models and learn solid ML concepts. The final part of the course is your capstone project. I decided to make my current VIX prediction problem as my final capstone project.<br />
<br />
I am not done with the VIX ML model but am more than halfway done. I demoed what I had made to a local AI/Deep Learning group yesterday and was encouraged by all of the positive feedback ( I am my own worst critic ). I have set a goal to have the VIX ML model done by the end of May. I'll let you know how it goes in June :-)<br />
<br />
This is what is so fun and amazing about learning to code! When you know the basics of coding, the sky is literally the limit, you can be a developer, a QA, Test Automation Engineer, or become a Machine Learning Engineer. I have fallen in love with Python even more than I was with Ruby, and also love using Anaconda with Jupyter notebooks.<br />
<br />
Keep learning, never give up, press through <b>any</b> and <b>all</b> challenges, learning to code is worth all of the effort!<br />
<br />
<br />joshuakemphttp://www.blogger.com/profile/15916453538115796012noreply@blogger.comtag:blogger.com,1999:blog-3935074684256715583.post-36448326074507025842018-05-30T12:40:00.001-04:002018-05-30T16:04:50.189-04:00Why you should learn RPA or What I would do if I was learning to code today<div dir="auto" style="color: #222222; font-family: arial, sans-serif; font-size: small;">
NOTE: I’ve been informed by my lawyer that when talking about sensitive subjects like the following I need a disclaimer, here goes:</div>
<div dir="auto" style="color: #222222; font-family: arial, sans-serif; font-size: small;">
<br /></div>
<div dir="auto" style="color: #222222; font-family: arial, sans-serif; font-size: small;">
<br /></div>
<div dir="auto" style="color: #222222; font-family: arial, sans-serif; font-size: small;">
<b>Everything you are about to read is merely hypothetical, and shouldn’t be taken as fact.</b></div>
<div dir="auto" style="color: #222222; font-family: arial, sans-serif; font-size: small;">
<br /></div>
<div dir="auto" style="color: #222222; font-family: arial, sans-serif; font-size: small;">
<br /></div>
<div dir="auto" style="color: #222222; font-family: arial, sans-serif; font-size: small;">
6 years ago I was desperate to get a job to provide for my wife and 2 little kids. My strategy was to figure out the hottest web development language and learn it.</div>
<div dir="auto" style="color: #222222; font-family: arial, sans-serif; font-size: small;">
<br /></div>
<div dir="auto" style="color: #222222; font-family: arial, sans-serif; font-size: small;">
My thinking was if the new hot framework had only been around a few years and didn’t have many people with much experience, they might give me a shot despite my lack of credentials.</div>
<div dir="auto" style="color: #222222; font-family: arial, sans-serif; font-size: small;">
<br /></div>
<div dir="auto" style="color: #222222; font-family: arial, sans-serif; font-size: small;">
Turns out my logic was solid and I learned Ruby on Rails and landed a junior dev job. Now though Javascript has eaten up the world, it’s what everyone is learning.</div>
<div dir="auto" style="color: #222222; font-family: arial, sans-serif; font-size: small;">
<br /></div>
<div dir="auto" style="color: #222222; font-family: arial, sans-serif; font-size: small;">
Richard Branson says: “Never do a business that you don’t love.” </div>
<div dir="auto" style="color: #222222; font-family: arial, sans-serif; font-size: small;">
<br /></div>
<div dir="auto" style="color: #222222; font-family: arial, sans-serif; font-size: small;">
I don’t enjoy JavaScript it changes so fast and a new JS framework is created every 5 minutes.</div>
<div dir="auto" style="color: #222222; font-family: arial, sans-serif; font-size: small;">
<br /></div>
<div dir="auto" style="color: #222222; font-family: arial, sans-serif; font-size: small;">
What to do???</div>
<div dir="auto" style="color: #222222; font-family: arial, sans-serif; font-size: small;">
<br /></div>
<div dir="auto" style="color: #222222; font-family: arial, sans-serif; font-size: small;">
I saw the market shifting in early 2014, I tried learning JavaScript and found it frustrating for many reasons and just not fun.</div>
<div dir="auto" style="color: #222222; font-family: arial, sans-serif; font-size: small;">
<br /></div>
<div dir="auto" style="color: #222222; font-family: arial, sans-serif; font-size: small;">
After the front end team got laid off from my first job, I had 8 final interviews each time they said they loved me but my JavaScript skills were too weak. They suggested I apply for their QA job.</div>
<div dir="auto" style="color: #222222; font-family: arial, sans-serif; font-size: small;">
<br /></div>
<div dir="auto" style="color: #222222; font-family: arial, sans-serif; font-size: small;">
With my severance running out I decided if I was offered a QA job again I would hop on it. My 9th final interview the same thing happened, this time I answered that I would absolutely LOVE to try a QA role! <img alt="😜" data-goomoji="1f61c" goomoji="1f61c" src="https://mail.google.com/mail/e/1f61c" style="margin: 0px 0.2ex; max-height: 24px; vertical-align: middle;" /></div>
<div dir="auto" style="color: #222222; font-family: arial, sans-serif; font-size: small;">
<br /></div>
<div dir="auto" style="color: #222222; font-family: arial, sans-serif; font-size: small;">
Long story short, I ended up liking the QA role as it was really a Test Automation role. It was the first time I learned about Selenium and how cool Automation was!</div>
<div dir="auto" style="color: #222222; font-family: arial, sans-serif; font-size: small;">
<br /></div>
<div dir="auto" style="color: #222222; font-family: arial, sans-serif; font-size: small;">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJpup0UrZM8PnI6hvj76MMttET9ir-RWYwqalqOu-cFaC7q3PtXGoW_TFIqjSWKMakX3Z81LqOnSU8NyaK-VQhYcPdMIlDNkSKu5d8py54rnhVLnjhktEwb1cdwflY8VXZfS9eK0EliMc/s1600/franck-v-517860-unsplash.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="1200" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJpup0UrZM8PnI6hvj76MMttET9ir-RWYwqalqOu-cFaC7q3PtXGoW_TFIqjSWKMakX3Z81LqOnSU8NyaK-VQhYcPdMIlDNkSKu5d8py54rnhVLnjhktEwb1cdwflY8VXZfS9eK0EliMc/s640/franck-v-517860-unsplash.jpg" width="480" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<b>Where am I going with this?<br /></b></div>
<div dir="auto" style="color: #222222; font-family: arial, sans-serif; font-size: small;">
<br /></div>
<div dir="auto" style="color: #222222; font-family: arial, sans-serif; font-size: small;">
Learn to code yes, but don’t limit yourself to only being a developer. Most people who reach out to me want to be cool and have hip stickers on their Mac while drinking coffee.</div>
<div dir="auto" style="color: #222222; font-family: arial, sans-serif; font-size: small;">
<br /></div>
<div dir="auto" style="color: #222222; font-family: arial, sans-serif; font-size: small;">
The truth is learning to code and being a professional developer are worlds apart. They are as different as your grandma’s computer skills are to yours.</div>
<div dir="auto" style="color: #222222; font-family: arial, sans-serif; font-size: small;">
<br /></div>
<div dir="auto" style="color: #222222; font-family: arial, sans-serif; font-size: small;">
Yes, THAT different!</div>
<div dir="auto" style="color: #222222; font-family: arial, sans-serif; font-size: small;">
<br /></div>
<div dir="auto" style="color: #222222; font-family: arial, sans-serif; font-size: small;">
My common sense and strategic thinking is strong and I’ve found the next big thing, and I think you should check it out as another possible alternative to being a full-blown developer.</div>
<div dir="auto" style="color: #222222; font-family: arial, sans-serif; font-size: small;">
<br /></div>
<div dir="auto" style="color: #222222; font-family: arial, sans-serif; font-size: small;">
I have learned the basics of pen testing ( ethical hacking ), started learning data science but didn’t fall in love with them.</div>
<div dir="auto" style="color: #222222; font-family: arial, sans-serif; font-size: small;">
<br /></div>
<div dir="auto" style="color: #222222; font-family: arial, sans-serif; font-size: small;">
I loved outsmarting websites and scraping data and automating ways to win free things online. I always used Selenium or a headless version like phantomJS ( Poltergeist ) to be faster.</div>
<div dir="auto" style="color: #222222; font-family: arial, sans-serif; font-size: small;">
<br /></div>
<div dir="auto" style="color: #222222; font-family: arial, sans-serif; font-size: small;">
I would use some of my hacking skills to change the user agents and try to automate stuff that I probably technically shouldn’t have <img alt="😬" data-goomoji="1f62c" goomoji="1f62c" src="https://mail.google.com/mail/e/1f62c" style="margin: 0px 0.2ex; max-height: 24px; vertical-align: middle;" /> - that was the hacker in me, I thought it was fun.</div>
<div dir="auto" style="color: #222222; font-family: arial, sans-serif; font-size: small;">
<br /></div>
<div dir="auto" style="color: #222222; font-family: arial, sans-serif; font-size: small;">
Enter LinkedIn, they have one of THE hardest sites to automate, they change elements and totally disorients Selenium, Selenium acts like it's drunk and had no idea what is going on.</div>
<div dir="auto" style="color: #222222; font-family: arial, sans-serif; font-size: small;">
<br /></div>
<div dir="auto" style="color: #222222; font-family: arial, sans-serif; font-size: small;">
I spent a week in my free time trying all different types of tricks and ways to automate LinkedIn. Nothing worked. I stalked people on Quora who used to work at LinkedIn and read posts and learned some of the things they do to try and prevent automation and web scraping. I came back to my script and tried for 2 more days, no luck.</div>
<div dir="auto" style="color: #222222; font-family: arial, sans-serif; font-size: small;">
<br /></div>
<div dir="auto" style="color: #222222; font-family: arial, sans-serif; font-size: small;">
I love automation, I love web scraping and have done it at many companies for them professionally, but this defeat really discouraged me. I focused on my side businesses and left it alone for a month. </div>
<div dir="auto" style="color: #222222; font-family: arial, sans-serif; font-size: small;">
<br /></div>
<div dir="auto" style="color: #222222; font-family: arial, sans-serif; font-size: small;">
I looked into OCR and tools like Kantu and Sikuli. I got them to kind of work but they weren’t fun to use and felt brittle.</div>
<div dir="auto" style="color: #222222; font-family: arial, sans-serif; font-size: small;">
<br /></div>
<div dir="auto" style="color: #222222; font-family: arial, sans-serif; font-size: small;">
Fast forward 1 month.</div>
<div dir="auto" style="color: #222222; font-family: arial, sans-serif; font-size: small;">
<br /></div>
<div dir="auto" style="color: #222222; font-family: arial, sans-serif; font-size: small;">
Through luck and chance, I heard about RPA ( Robotic Process Automation ). I started Googling and started learning one of the top RPA tools who shall be nameless. Long story short I didn’t think tihe tool was very modern it felt old and clunky.</div>
<div dir="auto" style="color: #222222; font-family: arial, sans-serif; font-size: small;">
<br /></div>
<div dir="auto" style="color: #222222; font-family: arial, sans-serif; font-size: small;">
The ability to automate virtually anything was cool though! A friend told me to try out UiPath as he thought it was WAY better than the other RPA tool I had been using.</div>
<div dir="auto" style="color: #222222; font-family: arial, sans-serif; font-size: small;">
<br /></div>
<div dir="auto" style="color: #222222; font-family: arial, sans-serif; font-size: small;">
Oh, my gosh guys... BOOM! UiPath is AMAZING! It can automate literally anything without even breaking a sweat! I won’t say exactly WHAT I’ve automated, but where Selenium would fall over and get crushed, UiPath breezes through!</div>
<div dir="auto" style="color: #222222; font-family: arial, sans-serif; font-size: small;">
<br /></div>
<div dir="auto" style="color: #222222; font-family: arial, sans-serif; font-size: small;">
I use it for so many things that used to be hard and take a lot of skill to automate, now it’s actually easy.</div>
<div dir="auto" style="color: #222222; font-family: arial, sans-serif; font-size: small;">
<br /></div>
<div dir="auto" style="color: #222222; font-family: arial, sans-serif; font-size: small;">
I’m not paid to say any of this.</div>
<div dir="auto" style="color: #222222; font-family: arial, sans-serif; font-size: small;">
<br /></div>
<div dir="auto" style="color: #222222; font-family: arial, sans-serif; font-size: small;">
Guess what?</div>
<div dir="auto" style="color: #222222; font-family: arial, sans-serif; font-size: small;">
<br /></div>
<div dir="auto" style="color: #222222; font-family: arial, sans-serif; font-size: small;">
RPA is a hot new technology that I think will literally change the world. The barrier to entry is set really low and you don’t have to be a full-blown developer to use it. You just need to know the basics of coding!</div>
<div dir="auto" style="color: #222222; font-family: arial, sans-serif; font-size: small;">
<br /></div>
<div dir="auto" style="color: #222222; font-family: arial, sans-serif; font-size: small;">
Oh, and its income potential is on par or better than a developer. I absolutely love UiPath and am moving towards doing it full time. I suggest you check it, even if only to help automate tricky workflows.</div>
<div dir="auto" style="color: #222222; font-family: arial, sans-serif; font-size: small;">
<br /></div>
<div dir="auto" style="color: #222222; font-family: arial, sans-serif; font-size: small;">
People email me and want to know what I would do if I was starting today. Well, now you know. I never do what everyone else is doing or thinks is cool.</div>
<div dir="auto" style="color: #222222; font-family: arial, sans-serif; font-size: small;">
<br /></div>
<div dir="auto" style="color: #222222; font-family: arial, sans-serif; font-size: small;">
Learn RPA, it already has some AI being integrated into it. I recommend UiPath, but any tool is better than none.</div>
<div dir="auto" style="color: #222222; font-family: arial, sans-serif; font-size: small;">
<br /></div>
<div dir="auto" style="color: #222222; font-family: arial, sans-serif; font-size: small;">
Always be learning something new, never slow down always be hustling, and turn off Netflix <img alt="😜" data-goomoji="1f61c" goomoji="1f61c" src="https://mail.google.com/mail/e/1f61c" style="margin: 0px 0.2ex; max-height: 24px; vertical-align: middle;" /><img alt="👊" data-goomoji="1f44a" goomoji="1f44a" src="https://mail.google.com/mail/e/1f44a" style="margin: 0px 0.2ex; max-height: 24px; vertical-align: middle;" /><img alt="💥" data-goomoji="1f4a5" goomoji="1f4a5" src="https://mail.google.com/mail/e/1f4a5" style="margin: 0px 0.2ex; max-height: 24px; vertical-align: middle;" /></div>
<div dir="auto" style="color: #222222; font-family: arial, sans-serif; font-size: small;">
<br /></div>
joshuakemphttp://www.blogger.com/profile/15916453538115796012noreply@blogger.comtag:blogger.com,1999:blog-3935074684256715583.post-1372266822689538342018-01-25T22:24:00.002-05:002018-01-25T22:24:35.258-05:009 things I have learned with using only Windows for a year I took a position as a QA / Test Automation Consultant at a Windows shop for the express reason of giving Windows a shot. Up until then I had always worked on Macs and absolutely love them. I took the job because I wanted to better my skill set, be strong on both Mac and Windows. Forcing myself to only use Windows products seemed like a good way to do that.<br />
<br />
<div style="text-align: center;">
<br /></div>
I like Mac better than Windows. However, I have come to appreciate somethings about Windows that are better than Mac. Overall I am so glad I put myself out there and used Windows straight for a year. I still have a Mac at home and prefer it.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiq0jqmPEmsrPEx_REhExG1p7TUE6XxgJrNe3foVCwZYMj8vL6Zfi57ZqE7b27clxum1PEVBn95UlEBmqF1INk8JLNTqAnrINihEZMP_0fAvEp-84MhPxBN9XrsEEkMNg1Gh1NLdW9bqlY/s1600/windowscomputer.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1063" data-original-width="1600" height="424" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiq0jqmPEmsrPEx_REhExG1p7TUE6XxgJrNe3foVCwZYMj8vL6Zfi57ZqE7b27clxum1PEVBn95UlEBmqF1INk8JLNTqAnrINihEZMP_0fAvEp-84MhPxBN9XrsEEkMNg1Gh1NLdW9bqlY/s640/windowscomputer.jpg" width="640" /></a></div>
<br />
<div style="text-align: center;">
<br /></div>
<b style="text-align: center;"><span style="font-size: large;">9 things I've learned</span></b><br />
<div style="text-align: center;">
<br /></div>
<b>1. Windows has better file searching.</b> Mac's Finder sucks everyone knows that, yes you can add Alfred ( which I do to make it better ).<br />
<b><br /></b>
<b>2. Windows has these 2 apps that are simply amazing.</b><br />
<i>"Search Everything"</i> - you can find files at lightning fast speeds it is unbelievable, I wish Mac had this.<br />
<i>"GrepWin"</i> - You can find text in a file at astonishing speeds. Yes, you can use the command line Grep with Mac. ( Which I do, but this is far better in my opinion )<br />
<b><br /></b>
<b>3. There are more apps for Windows,</b> simply because Windows is more prevalent. I can find an app I like on Windows and then I can't find it for Mac.<br />
<br />
<b>4. Windows has greatly improved</b> from when I used them in 2008 - 2010. Back then they were "dog slow" and constantly broke or had the "blue screen of death". I remember I had an 18-month stretch having to buy 3 Windows machines because they broke for various reasons.<br />
<br />
<b>5. Windows have touch screens.</b> I don't use it that much but it is nice to have the option.<br />
<b><br /></b>
<b>6. Windows has become more "Mac like". </b>The icons are slicker and I can set it up to look more like a Mac by docking the apps that I want to use.<br />
<b><br /></b>
<b>7. Windows are cheaper.</b> I always knew that but with Apple not being on it's "A Game" the past 2 years, it's nice to know you can easily pick up a new Windows machine for pretty cheap.<br />
<br />
<b>8. Windows is getting better year over year</b>. I don't see that with Mac right now. Also, Windows came out with Visual Studio Code which is simply amazing! So amazing in fact that I stopped using Sublime Text editor which I swore I never would.<br />
<br />
<b>9. C#.</b> I learned C# this past year and it has some pretty amazing automation frameworks better than Ruby ( my favorite language ). I think overall Windows has closed the gap between Mac.<br />
<b><span style="font-size: large;"><br /></span></b>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEc7zEOm4S2SoRu1MfXlqIWE9BRVMxaapbvqeJaqZpE_P-cmKwHBCkBphMmmuB9kC83wdIgCi4s-Kzk-GjxmnPTTO56b3uiJDGfgJ_DYAhQQ2HKcMRl5JKkBZEqCj2aFvYWV8Vwr6eVf0/s1600/maccomputer.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="1311" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEc7zEOm4S2SoRu1MfXlqIWE9BRVMxaapbvqeJaqZpE_P-cmKwHBCkBphMmmuB9kC83wdIgCi4s-Kzk-GjxmnPTTO56b3uiJDGfgJ_DYAhQQ2HKcMRl5JKkBZEqCj2aFvYWV8Vwr6eVf0/s640/maccomputer.jpg" width="524" /></a></div>
<b><span style="font-size: large;"><br /></span></b>
<b><span style="font-size: large;"><br /></span></b>
<b><span style="font-size: large;">Why I still love my Mac better</span></b><br />
<b><span style="font-size: large;"><br /></span></b>
<b>1. Mac "just works".</b> Mac's solutions are usually easier to set up than Windows. If you download an app on Windows it will be easier to use on Mac.<br />
<br />
<b>2. Mac has Unix shell!</b> Windows command line is a joke, in fact, when I use Windows I install the Unix command line so I can use it instead.<br />
<br />
<b>3. Mac is more developer friendly.</b> You can easily create and change PATHS. Also, I can very easily create Aliases in Mac. For Windows, you have to sell your soul to the devil to figure it out.<br />
<br />
<b>4. I like open source.</b> I feel open source software is far easier to use with Mac. I love that Mac comes with Ruby pre-installed on it.<br />
<br />
<b>5. Macs are faster and generally don't simply crash on you. </b>Windows is far more buggy and almost every day I have to use "Task Manager" to kill an app that is acting buggy.<br />
<br />
<b>6. I like how nice Macs are. </b>They are sexy with their slick Aluminum bodies. Windows machines feel like they are made out of melted Legos. :-)<br />
<b><br /></b>
<b>7. Macs are typically newer. </b>What I mean is when you work at a company on the engineering team you are assigned a computer. If you work on a Mac team you typically get a brand new Mac. When you work with a Windows team you will usually get an old "brick" sized laptop that is super slow<br />
and cries a lot. :-)<br />
<br />
All in all, I can't do too much bashing, pun intended. I am super grateful I took the plunge and learned Windows. In a perfect world, I would have one of each. I think the moral of this story is always keep an open mind, try new things out and be willing to change your opinion when you are wrong.<br />
<br />
Also whenever you do hard things you will see growth in your life. For me, it's a better appreciation for Windows.<br />
<div style="text-align: center;">
<b><br /></b></div>
<div style="text-align: center;">
<b>Whatever machine you have, you can learn to code! Start where you are with what you have, there is no reason not to learn to code and every reason to learn, You can do this!</b></div>
joshuakemphttp://www.blogger.com/profile/15916453538115796012noreply@blogger.comtag:blogger.com,1999:blog-3935074684256715583.post-10434454788239525932017-09-04T20:40:00.000-04:002017-09-04T20:40:27.492-04:00It is so easy to get hired in tech!Hey Guys,<br />
Al is working his butt off and doing well, but he struggled initially with the 21 hours per week time commitment. The most common thing I see with people learning to code, trying to land their first tech job is not studying 3 hours per day.<br />
<br />
Everyone wants to get hired. Everyone hates making retail money, but very few people are willing to turn off Netflix for 2 - 4 months, buckle down and do the work. Al is going to get hired, he is committed, where will you be in 4 months?<br /><br />The world is changing, the way to break into the tech scene is changing. Netflix and T.V. will always be there to distract you. What's the number one that thing that if you did it would change your life? You should go do that!<br /><br />Guys, follow me on Instagram, I am going to be using it more and Twitter less. @joshuakemp85<br />
<br />
You don't have to be a computer scientist to get hired or be the smartest person. You just have to be willing to not quit, never give up, and do your best. I love coaching people and watching them double their incomes and change their lives.<br /><br />Don't give up, work hard, and turn off Netflix :-)joshuakemphttp://www.blogger.com/profile/15916453538115796012noreply@blogger.comtag:blogger.com,1999:blog-3935074684256715583.post-68806052777726657312017-06-23T22:21:00.001-04:002017-06-23T22:21:59.569-04:00Test Automation is the fastest way to get hired!Another person hired as a Test Automation Engineer! Seriously forget the things you hear about your first coding job should be as a junior developer. Getting hired as a Test Automation Engineer is way easier and still allows you to write code :-)<br />
<br />
I only personally coach 1 person at a time these days. Please welcome Jae Shin to the tech field as a Test Automation Engineer.<br />
<br />
Getting hired is simply, learn how to code, learn how to market yourself, and share that enthusiasm and passion during the interview. Most people can get hired in 4 months once they set their mind to achieving the goal of getting hired. Now is the perfect time to break into tech, there is more opportunity than ever in the tech scene. Seriously go to any job board and search for "QA" or "Test Automation" and see all the jobs that are available.<br />
<br /><br />Here is Jae's review from his coaching experience, by the way he got hired in 1 month:<br /><br /><br />
<div dir="ltr" id="m_2484114961411816961divtagdefaultwrapper" style="background-color: white;">
<b><span style="font-family: Calibri, Arial, Helvetica, sans-serif;"><span style="font-size: 12pt;">"I can't thank Josh enough for coaching me through the steps in locking in my first tech job. Josh's guidance can only be surpassed by his sheer enthusiasm for watching people succeed. Not only did he walk me through what skills I needed, but also continuously challenged me to become a greater coder with his assignments. The skills I learned, in addition to the encouragements I received, gave me the confidence during my interview and landed me my first tech job."</span></span><br /><br /><br /><span style="font-family: Calibri, Arial, Helvetica, sans-serif;"><span style="font-size: 12pt;">- Jae Shin, </span></span><br /><span style="font-family: Calibri, Arial, Helvetica, sans-serif;"><span style="font-size: 12pt;">Test Automation Engineer,</span></span></b><b><span style="font-family: Calibri, Arial, Helvetica, sans-serif;"><span style="font-size: 12pt;">A</span>ccenture</span></b><br />
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt;">
<br />Be encouraged, charge forward, never listen to the naysayers! You can learn and you can get hired, and it doesn't have to take years!<br /><br /><b>Always keep learning :-)</b></div>
</div>
<br />joshuakemphttp://www.blogger.com/profile/15916453538115796012noreply@blogger.comtag:blogger.com,1999:blog-3935074684256715583.post-9441250991386174152017-05-25T23:34:00.003-04:002017-05-25T23:34:56.786-04:00How to be an instant hero at work!Let's face it when you work at a tech company, there is never enough good documentation to know how certain processes work. Another issue is that you never have enough time to document the new workflow, or how a back end web service works.<br />
<br />
Previously I have used a text editor and simply wrote my own very crude documentation, as I learned a new web application or back-end system. I tried excel for a while, didn't really like it. I also tried using Mac's built-in Notes app. I even tried a mind mapping tool called Freemind, nothing worked well, looked good, or was easy to use.<br />
<br />
That has all changed! I finally stumbled upon <a href="http://www.xmind.net/">XMind</a> the open source mind mapping tool. I am here to tell you that even the free version of XMind is simply <b>amazing! </b>I feel bad for myself these past 3.5 years of keeping track of notes and writing documentation <b>without </b>using XMind. I personally have the paid version of XMind because it is that good. I literally use it every single day at work for taking notes, documenting a new workflow or process, and when I am working on a user story.<br />
<br />
I make test plans, test scenarios, and test idea sessions all with XMind. I absolutely love the "brainstorming" feature for test scenario creation! The app is super easy to use straight off of the shelf and super intuitive, it just makes sense. I have over 30 XMind mind maps for work, I can't share those with you as they are strictly work mind maps. However, I plan on making more mind maps for personal projects so that I can share them!<br />
<br />
<br />
<b>How does using XMind make you an instant work hero?</b><br />
<b><br /></b>
Whenever I work on something that is poorly documented, a team member or manager will ask: <b> "Did you document the new process that worked for you? Can you put it up on a Confluence page?"</b><br />Normally that is <b>a lot </b>of extra work and extra formatting to make sure that my documentation all looks correct. Also for Confluence ( and a lot of other intranet sites ) they only have an import feature for Word Docs. <br />
<br />
This is what is so amazing about XMind, it will let you export your mind map to TONS of different formats and they all look amazing. With 2 clicks I literally have a perfectly looking Word Doc that I can instantly upload to Confluence in 10 seconds. Virtually everything that I touch at work is being improved, people have been thanking me for "taking the time" to document or clean up a process.<br />
<br />
I don't tell them that thanks to XMind's built-in export tool it doesn't take me any extra time. Xmind literally has 20 different formats that you can use. It doesn't matter if you need the document in an Excel format, CSV, Word, or whatever. XMind does it all!<br />
<br />
I don't recommend things that I don't believe in as you all know. I literally use this tool every day for at least 1 - 2 hours. I <b>highly </b>recommend you try it out and see how much easier your life gets. Being a documentation "rock star" at work never hurts either. Let's face it most people hate writing documentation, with XMind it's super easy!<br />
<br />
Check out <a href="http://www.xmind.net/">XMind</a><br />
<br />
Keep on learning how to code peeps, you can do this!joshuakemphttp://www.blogger.com/profile/15916453538115796012noreply@blogger.comtag:blogger.com,1999:blog-3935074684256715583.post-16311304365856103312017-03-24T08:27:00.002-04:002017-03-24T08:28:48.731-04:00I've been coding for 4 years... here's what I've learnedI am a Test Automation consultant, I write and read code most days. Over the past 4 years I've done many different things with code:<br />
<br />
<b>I've written basic Rails applications - </b>this is how I got hired at my first job as a junior developer<br />
<b>I wrote web scraper scripts and used Jenkins to automate them </b> - At my second job - this is where I really started to get better at coding, I learned the basics of automating things.<br />
<b>I worked as a mid level software engineer in testing using Javascript exclusively for 6 months </b>- I really started focusing on test automation, learned the importance of writing cleaner code. I also realized I didn't want to become a Javascript developer.<br />
<b>I helped create an API web service test automation framework in Ruby </b>- I paired with a senior Ruby developer for 6 months straight creating the framework. The code reviews and pairing took my coding skills to a higher level.<br />
<br />
I don't know everything but I've learned a few things along the way that I would like to share with you:<br />
<br />
<br />
<b>Code reviews - be mean to the code, nice to the coder - alot of people still don't know this or use it.</b><br />
I had a boss who would flip me off every morning and thought it was funny, after day 210 it starts to get very annoying. I have had about 4 developers who really knew how to do a great job at code reviews. Code doesn't have feelings, people do. When you are a junior level developer you are going to be getting tons of comments on your code reviews, this is a good thing as you will get better. Developers are notorious for lacking empathy, alot of code reviews suck because of it. My advice is to remember the humiliation and frustration when you have a *%$* reviewing your code, and to <b>not </b>do that to someone else when you start doing code reviews. Also try to not take anything the developer says personally ( even if they make it personal ).<br />
<br />
<br />
<b>Make it run, make it right, make it fast.</b><br />
I used to want to make something or write a script and I would try to plot out the perfect path to make the code awesome <b>before ever writing a single line of code. </b>Instead, think about what you want to make long enough for you to be able to write a "first draft" <b>that works</b>, albeit it's ugly. Get your code working and then start making it pretty and start looking at how to really improve it. Lastly you should look at ways to improve performance before pushing your code up for review. For me this was a very freeing concept to start writing code and not just trying to have everything perfect in my head from the start. I think as you gain more experience you will be able to write awesome code right off the bat, I have seen very senior developers do this. I don't think most entry level tech people will be able to for several years.<br />
<br />
<br />
<b>The courses you take online are not really what you do in real life.</b><br />
Courses are not geared to helping you land a job in the shortest amount of time, for the most part they want you to keep paying a monthly subscription fee. The real world trenches look very little like the clean beautiful courses you took online, which is why I recommend getting your first job as quick as possible, getting your wet and figuring out what it actually means to be a professional in the field. This may sound backwards, but I see far too many people who are waiting to get "good enough" coding in their parents basement's for 3+ years. There are many jobs out their with less qualified people filling them, I think the key is your passion and willingness to learn. If you have those you will grow your skills organically as needed, when "pain points" arise you will learn enough to get through them. Someone with 1 year of real world experience is far more hirable and productive than a 3 year "basement coder".<br />
<br />
<br />
<b>Algorithms are hardly used in the real world.</b><br />
I have almost never used an algorithm in my professional job, I have only ever needed to know algorithms for interviewing purposes and other mind games. <b> Real world coding is much more about these topics:</b><br />
Knowing OOP<br />
Writing methods that only do <b>one </b>thing<br />
Creating separate classes to keep the code cleaner<br />
Writing method names as verbs<br />
Naming variable that make sense - tip: name it what the method is returning back, also make sure to name it singular or plural depending on what is being returned.<br />
Reading code - this is the hardest thing that is almost never taught. It's hard to read other people's code, but that is 80% of your job. A good IDE helps.<br />
Refactoring<br />
Debugging - senior devs are amazing at this<br />
<br />
NOTE: This has been my experience with web development and test automation, I think the more senior level a developer becomes that changes some.<br />
<br />
<br />
<b>Refactor organically - slowly as you go.</b><br />
The last senior developer that I wrote the API automation framework with taught me this. Become aware of <b>pain points in your code. </b>When you are writing your code and start getting annoyed or frustrated with it, ask yourself why and how can you remove that pain point?<br />
<br />
<b>Simple example: </b>Whenever you find yourself writing the same line fo code more than once - <b>make a method. </b>When you have to change your code and it takes forever or is confusing, figure out how you can make it easier. Don't be afraid to make another class to clean something up or break methods down further.<br />
<br />
<br />
<b>No one is truly TDD - bet yes, have tests - unit tests are amazing.</b><br />
I hate writing unit tests and really don't like the whole TDD thing ( yes I know it is important ). I also realize that one reason Rubyists are so caught up with TDD is because Ruby is an interpreted language, and doesn't show compile errors. I have not worked with a single developer in real life ( not at conferences ) who actually wrote tests first. What I did see in real life was developers who wrote tests and checked their unit test coverage before pushing their code up for review.<br />
<br />
From the QA side of things, whenever I found a bug, a good developer would instantly write a unit test ( where applicable ) to cover that "missed test". I will say from the QA / Test Automation side of things their is nothing better than seeing a ton of unit tests. Why? Unit tests are super fast and give a high level of confidence that the web app has been tested. Also unit tests are awesome to run every time you pull down a new feature branch from a developer. Nothing beats unit tests for regression testing.<br />
<br />
Lastly unit tests will make QAs happier everywhere :-) So the moral of the story is yes, please write unit tests, whether or not you write them first, make sure you have some written.<br />
<br />
<br />
<b>In a nutshell how to write better code - think of others.</b><br />
You could spend your entire life on just this subject alone, but since you have a real job and must write code <b>now </b>what do you do?<br />
<br />
Writing cleaner / better code really comes down to one thing:<br />
<br />
<b>Thinking of others.</b><br />
<b><br /></b>
<b>Someone is going to have to change your code in the future, how hard or easy is it going to be?</b><br />
<br />
Keeping that thought in your mind while you are writing code will help you the most. When you are faced with the decision to write some code that will be easy to implement <b>but hard to maintain, </b>don't do it. You can write code as a first "rough draft" but you should never push the code up for review knowing it will be hard to maintain. Always take the approach that will be easier to maintain in the long run, even if it's harder for you to implement now.<br />
<br />
<br />
<b>Being okay with abstraction and not understanding how everything works</b><br />
I used to freak out when I would be faced with a new code base or product if I didn't understand <b>exactly how everything worked. </b>The truth is sometimes you are given an object and you need to take it for what it is an object and figure out what you can do with it. Being comfortable with not understanding something is hard, I have gotten better with getting thrown into a new project or team and "rolling with the punches" until I figure out the lay of the land.<br />
<br />
<br />
<b>As a junior developer you need a really nice senior developer to take you under their wing.</b><br />
You don't know what you don't know. I am a very driven person and always try to improve my skills, whether it be writing code, testing, pen testing, or data science ( my latest passion ). Finding a mentor will make you get better at a rate impossible on your own. I have worked with lots of crappy developers and testers, don't be one of those. You absolutely need a mentor, I can't tell you exactly how to get one, but you should always be on the lookout. Always be the best student and do the work required to grow. With my new endeavor ( Data Science ) I have several people who I can reach out to and ask questions whenever needed. Find someone who will be that for you. Pairing with the last senior developer for 6 months straight helped me grow more than I thought possible and gave me the confidence to learn my first compiled language C#.<br />
<br />
All in all learning how to code is one of the most useful skills you can learn on the planet. You don't ever have to be a full blown developer, but learn how to write loops, variables, how to navigate / read code, make methods and classes. You will know how to code enough to get your feet wet in the tech field :-) You can do this peeps!<br />
<br />
<br />
<br />
<b><br /></b>
<b><br /></b>
<b><br /></b>
<b><br /></b>
<b><br /></b>
<b><br /></b>
<b><br /></b>
<b><br /></b>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />joshuakemphttp://www.blogger.com/profile/15916453538115796012noreply@blogger.comtag:blogger.com,1999:blog-3935074684256715583.post-15090739352102050462017-03-18T12:04:00.003-04:002017-03-18T12:04:27.513-04:00Becoming a Data Scientist - Part 2Wow, thanks for the out pouring of advice and help. A special thank you to Ryan Herr who is a Data Scientist! Follow him on Twitter at <a href="https://twitter.com/rrherr">@rrherr</a>, I really appreciate the help!!! Whenever you are moving into a new field, one of the fastest ways to achieve your goal is to find a mentor. I know several people from work and online who are currently Data Scientists or have been in the past. Find people online who can be a mentor to you or who you can follow. Here are some basic things I am doing and recommend so far:<br />
<br />
Listen to podcasts on the way to work:<br /><b>http://www.becomingadatascientist.com/category/podcast/ </b><br />
<b><br /></b>
My commute is 25 minutes each way so I should be able to get through all or most of these podcasts in a month without too much effort.<br />
<br />
DataQuest:<br />
<b>https://www.dataquest.io/</b><br />
<b><br /></b>
I have started Data Quest and highly recommend it, it's like an online Data Science boot camp. One thing I would like to note. <b>I used to be supportive of coding bootcamps back in 2012 - 2014, I am no longer supportive of coding bootcamps. </b> The reason being there is a glut of "junior developers" on the market because of all the coding bootcamps who constantly "churn" them out. In any new field which is in constant change, there is a huge opportunity for people who are less qualified to break into the field. This is what it was like from 2012 - 2014 with coding bootcamps, if you went to a bootcamp you could easily land a job afterwards. That is not the case anymore, there are literally hundreds of people all applying for the same junior dev job. Most with virtually all have the same story: <b>"I attended a coding bootcamp".</b> This is not a good way to stand out from the crowd anymore, in fact it almost makes you "unremarkable".<br />
<br />
The reason I am doing DataQuest is that the data science field is still <b>very </b>new, and there are no <b>clear </b>paths on how to get hired as a Data Scientist. Basically in my mind the data science field feels very much like trying to get a junior dev job back in 2011 - 2012. It's hard because there is no clear path, but it's also very freeing because no one can tell who is truly "qualified" or not. This is why I am trying DataQuest, I feel like they have a pretty good path ( so far ) that gently introduces you to data science topics. I think 5 years from now there will be 100 data science bootcamps and <b>everyone </b>will be telling you to attend!<br />
<br />
I have always thought and have done the following:<br />
<br /><b>"Don't do what everyone else is doing. If everyone is doing something then do the opposite"</b><br />
<b><br /></b>
Also I look at trends and which jobs are getting outsourced or are easier to outsource. I also know that the reason brain surgeons make so much money is because they are hard to replace. Not many people can do what a brain surgeon does, brain surgery is a real skill. The tech field is the same way, the more people who have a certain skill the lower the income, and the easier to outsource the job. I also believe in doing something that I am passionate about and enjoy doing, it's not <b>only about which job makes the most money. </b>You need to enjoy what you are doing, this is the reason I am not interested in becoming a Javascript developer, I simply do not enjoy using Javascript. I was a mid level software engineer in testing for 6 months and realized it wasn't for me.<br />
<br />
The whole key it to learn the basics of programming, once you do there are <b>so many different opportunities for jobs out there! </b>Spend at least an hour every day learning something new in the tech field, for me it is data science. Get moving peeps, you can do this!!! :-)<br />
<br />
<br />
<b><br /></b>joshuakemphttp://www.blogger.com/profile/15916453538115796012noreply@blogger.comtag:blogger.com,1999:blog-3935074684256715583.post-1372505393127219432017-03-15T21:32:00.000-04:002017-03-15T21:32:18.879-04:00Watch me become a Data Scientist!<div>
<span style="font-size: 19px;">You may or may not remember me, I am that guy who used to do this for 8 years:</span></div>
<div>
<span style="font-size: 19px;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_BeE5gckqtR7dJajGPNakOVNRfp703O3YA7b_sANHYiRXmmjJBxVbTuS8c8Pvudkq8XnYwRGDx3yLckA3BYlQjSyLZQ2RT6r0hYPG0mYKCsuKPEennENh3SWbpBJqU_i9acFgTNamoZ0/s1600/shoeing.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_BeE5gckqtR7dJajGPNakOVNRfp703O3YA7b_sANHYiRXmmjJBxVbTuS8c8Pvudkq8XnYwRGDx3yLckA3BYlQjSyLZQ2RT6r0hYPG0mYKCsuKPEennENh3SWbpBJqU_i9acFgTNamoZ0/s640/shoeing.jpg" width="476" /></a></div>
<div>
<span style="font-size: 19px;"><br /></span></div>
<div>
<br /></div>
<div>
<span style="font-size: 19px;"><br /></span></div>
<div>
<span style="font-size: 19px;">My "secret technique" was shoeing large angry horses all day, putting my kids to sleep, then spending time with my wife, and finally from 10pm - 1am ( or till I fell asleep on the couch ) learning how to code. I did this for 9 months, 2 days straight without missing a day. I am a very driven person and believe in pushing myself to new levels, I also get bored very easily and love to learn new things. One of my favorite sayings is: <b>"You can sleep when you're dead"</b> :-)</span></div>
<div>
<span style="font-size: 19px;"><br /></span></div>
<div>
<span style="font-size: 19px;">I had thousands of people follow me on my journey of learning to code and eventually landing a junior developer role. After getting hired I was </span><span style="font-size: 19px; line-height: 27px;">inundated</span><span style="font-size: 19px;"> with hundreds of emails asking how a "dumb Blacksmith / Farrier" learned how to code, so I wrote a book. After a few years in the tech field I started coaching people how to land jobs. I soon realized that coaching was</span> <b style="font-size: 19px;">way</b> <span style="font-size: 19px;">too time intensive, and I could never keep up with all the coaching requests. I also realized that the reason people weren't getting hired had very little to do with their technically ability, and</span> <b style="font-size: 19px;">way more</b> <span style="font-size: 19px;">to do with their ability to network and market themselves. So I created an online course teaching people how to get hired super fast.</span></div>
<div>
<span style="font-size: 19px;"><br /></span></div>
<div>
<span style="font-size: 19px;"><br /></span></div>
<div>
<span style="font-size: 19px;"><b>Why am I telling you this??? B</b></span><span style="font-size: 19px;"><b>ragging? </b></span></div>
<div>
<b><span style="font-size: 19px;"><br /></span></b></div>
<div>
<b><span style="font-size: 19px;"><br /></span></b></div>
<div>
<b><span style="font-size: 19px;"><br /></span></b></div>
<div>
<b><span style="font-size: 19px;"><br /></span></b></div>
<div>
<b><span style="font-size: 19px;">No.</span></b></div>
<div>
<b><span style="font-size: 19px;"><br /></span></b></div>
<div>
<b><span style="font-size: 19px;"><br /></span></b></div>
<div>
<b><span style="font-size: 19px;"><br /></span></b></div>
<div>
<b><span style="font-size: 19px;"><br /></span></b></div>
<div>
<span style="font-size: 19px;">I am embarking on another equally exciting and challenging journey, and I have decided to let anyone who would like to follow along with me on this journey. In August 2013 I thought I wanted to be a senior Rails developer in 5 years, that is no longer my goal. I am currently a Test Automation and QA consultant for a very well known company who shall be nameless. My journey has been successful, but my journey is not over. I thought I wanted to be a "Ethical Hacker" so I got a mentor, and learned as much as I could for 4 months. I decided that wasn't the path for me. This time around I thought I would let you watch me struggle and learn a new field, one that is not very well charted at this point in the tech industry. <b>I am going to become a Data Scientist</b>.</span></div>
<div>
<span style="font-size: 19px;"><br /></span></div>
<div>
<span style="font-size: 19px;">I don't know all the answers about how I am going to make this happen, but I do know that success for me will be landing a Data Science job. I was going to wait for a while until I knew a lot more about the field. Instead I decided to let you in on the "ground floor". I have been doing my homework, studying the industry for the past month in the evenings after work, and have come up with a basic plan. I will tell you more about my plan as time goes along. One of the biggest issues that people face is not starting with the end in mind. I have a <b>very clear target</b>: Data Scientist position. Having "analyis paralysis" is another common problem</span><span style="font-size: 19px;">, too many options so they don't pick any. Others find themselves with <b>too many choices and resources!!!</b> So they keep bouncing around and switching material constantly.</span></div>
<div>
<span style="font-size: 19px;"> </span></div>
<div>
<span style="font-size: 19px;">If something is not working for you, then by all means stop using it and try something else. If however you are constantly chasing the new <b>shiny thing</b>, then you will never accomplish your goal of landing a job. Make no mistake, I do not live in my parents basement, I live in the real world with real world bills. The best way to see if you are <b>"good enough", </b>is to go out and try to land a job in your chosen field. Becoming a professional in the industry is tough, being a "Monday morning quarterback" is not hard. Waiting until you are <b>perfect</b> is a waste of time, and something that will never happen in the tech industry as it changes too quickly. I say jump in the game, get your feet wet, that is the best way to learn and push yourself to new levels.</span></div>
<div>
<span style="font-size: 19px;"><br /></span></div>
<div>
<span style="font-size: 19px;">If you would have told me that I would be a highly paid consultant 3 years 8 months ago I would have laughed at you. I have worked at 4 companies in 4 years, I have seen some awful situations. I have experienced good management and horrible management. I have seen first hand the problems of "technical debt", I don't need to read about it or take a test, I have lived it. I have had to learn entire new frameworks of code and start contributing to them in a matter of weeks. The only thing that is constant about tech is that it will always change, and that in order to stay ahead you will have to <b>always be learning! </b>No hand holding here, this is the big leagues, you will have to figure it out fast or get laid off ( <b>true story</b> ).</span></div>
<div>
<span style="font-size: 19px;"><br /></span></div>
<div>
<span style="font-size: 19px;">So here I am again, ready to crawl and fight for every shred of knowledge about Data Science. It's scary too when you say things like this in public. People send you mean emails, call you stupid just because you set big goals. I don't care, when people tell me I can't do something it just gives me more fuel to my fire! This blog has always been about helping people, and making it easier for others to navigate the crazy tech field. I won't blog everyday, but I will share with you anything and everything I find out along the way. I hope you will follow along and watch me acheive my goal!!!</span></div>
<div>
<span style="font-size: 19px;"><br /></span></div>
<div>
<span style="font-size: 19px;">You can do this, never let anyone say that you can't! </span></div>
<br />
<div>
<span style="font-size: 19px;"><br /></span></div>
joshuakemphttp://www.blogger.com/profile/15916453538115796012noreply@blogger.comtag:blogger.com,1999:blog-3935074684256715583.post-4813851353106881242017-01-17T21:29:00.002-05:002017-01-17T21:29:42.698-05:00Why you should buy me lunch :-)I received an email today from a guy in Winston Salem N.C. who is learning how to code.<br /><br /><b>So what?</b><br />
<b><br /></b>
I loved his outside the box thinking! He asked me if he could buy me lunch and "pick my brain". Mind you he will have to drive <b>100 miles EACH WAY!!! </b>I've had this happen before, I had someone drive over 150 miles to buy me coffee at Starbucks :-)<br />
<br />
<b>Why do I tell you this...to brag? no.</b><br />
<br />
Coding bootcamps are churning out fresh new coders everyday, thousands and thousands of new coders every year. Coding bootcamps are the solution to getting a job...<b>except they're not. </b>Bootcamps are having a harder and harder time getting they're students hired, I receive many emails that tell a similar sad story. <br />
<br />
<b>Attend bootcamp >> land job >> 3 months later laid off</b><br />
<b><br /></b>
There are only so many junior level jobs on the market at any one time. There is a glut of bootcamp grads these days. Also the entry level skills required to land an entry level dev job are becoming harder thanks to Javascript usage growing everywhere.<br />
<br />
I have some good news, there will always be jobs for people who know where to look, <b>and who think outside the box. </b> What do I mean by this?<br />
<br />
<b>College was a great way to get a high paying job back in the 70's - 90's </b><br />
<b>Bootcamps were an amazing way to get a junior dev job 2013 - early 2015</b><br />
<br />
There is a new way to break into the tech field that I have touched on before, but the point is - there will always be jobs for people <b>who don't follow what everyone else is doing. </b>If you wait until <b>everyone </b>is doing something you are too late.<br />
<br />
<b>The best way to predict your future is to create it!</b> When I was shoeing horses for a living I used that to my advantage to stand out from the crowd with my unique story. I needed help with coding but couldn't afford to go to a coding bootcamp, I met David Bock ( a very senior Rail developer ) for coffee, I had to drive 1 hour and 30 minutes to meet him.<br />
<br />
Meeting with David helped me learn about the tech industry, and helped me meet people I didn't know. That relationship eventually helped me land my first tech job as a junior developer. I am constantly emailed and asked by people to give them personalized private coaching for free. Most of these people have not paid $10 for my book or course, they simply want my help for free with absolutely ZERO effort on there part.<br />
<br />
<b>That's what 90% of people ask who email me. </b><br />
<b><br /></b>
Guess what I say when someone offers to drive 100 miles and buy me lunch??? <b>YES! </b>I love helping people, I just can't personally help every single person do to the number of emails I receive.<br />
<br />
I have 2 final thoughts:<br />
<br />
<b>Be different, think outside the box - don't do what everyone else is doing.</b><br />
<b>Buy me lunch :-) </b>Think about it $10 - $15 to hang out and get my personalized advice for 45 - 50 minutes is a deal. It's the cheapest coaching program ever, if you ever are in the Raleigh area, feel free to reach out to me and I'll do my best to help you!<br />
<br />
joshuakemphttp://www.blogger.com/profile/15916453538115796012noreply@blogger.comtag:blogger.com,1999:blog-3935074684256715583.post-62793655169757908512016-12-11T21:58:00.002-05:002016-12-11T21:58:34.958-05:00How to automate everything - part 3The world is changing faster than ever! When I started learning how to code things were changing fast... now it's changing at warp speed! Things I have told you as a fact in the past, I am now seeing changing. You have to stay up to date or else get swept down the tech stream. I always keep my eye on emerging technologies, <b>but</b> the most important source I keep my finger on is tech job apps.<br />
<br />
When they change, I change. If your goal is to stay employed you need to stay fresh with your tech skills. In my opinion there has never been a better time to get into QA than right now, this article backs me up as well:<br />
<br />
<a href="https://www.jibe.com/ddr/the-top-5-skills-and-occupations-in-demand-right-now/">https://www.jibe.com/ddr/the-top-5-skills-and-occupations-in-demand-right-now/</a><br />
<br />
<br />
I found this article very interesting for anyone wanting to get into QA:<br />
<br />
<a href="https://www.qualitestgroup.com/blog/future-of-software-testing/the-qa-job-market-is-a-killer-would-you-stand-a-chance/">https://www.qualitestgroup.com/blog/future-of-software-testing/the-qa-job-market-is-a-killer-would-you-stand-a-chance/</a><br />
<br />
One thing that is awesome about the QA field is that it is changing over to to automation at a rapid rate! What does that mean to you? If you are just out of a coding bootcamp and find the junior dev field crowed by a lot of other coding bootcamp students, than think about the QA field.<br />
<br />
Test automation is at least 50% writing code, 50% manual testing. One of the best ways to learn more about testing and automation is to start listening to "test talks", I listen to them on the way to work everyday:<br />
<br />
<a href="https://joecolantonio.com/testtalks/">test talks podcast</a><br />
<br />
What if you are a manual tester who can't write a single line of code ( many of QAs are in this boat )?I suggest you start writing automation, - doesn't matter what you automate,it doesn't matter how crappy the code, just start writing! Push all of your code up to Github so you can start building a little portfolio for potential employers to see. <br />
<br />
As an example do what I did, while watching some Netflix in the evening with my wife, I wrote a basic script to automate the process of earning points youlikehits.com site. I don't need the script, don't really care about the script. The point is to practice writing code and slowly improving your automation skills over time. Check out my script...laugh... cry, <b>write better code than I did and send me a pull request :-)</b><br />
<br />
<a href="https://github.com/joshuakemp1/you_like_hits_auto_points_collector">you_like_hits_auto_points_collector</a><br />
<br />
I am learning to write my scripts more organically as of late. I start writing the basics of what I want to the script to do, I start refactoring as the script starts to annoy me and starts getting painful to work with.<br />
<br />
Instead of sitting and staring at a blank text editor and trying to write <b>perfect code from the start</b>, simply start writing and pay close attention to the "pay points". <b>NOTE:</b> this is not good advice if you are a full blown developer. I am speaking about people who are new to writing code. When I follow my own advice I find myself feeling more free to actually just start and enjoy the process of writing code. <br />
<br />
Isn't that the whole point? I mean if you hate writing code and stress out every second you are working, why do it? <b>Let me know what you think of my script :-)</b> Next up, I might try and write a script to automate a job on Fiverr! Give me some ideas, tell me something that is painful for you.<br />
<b>joshuakemp85@gmail.com</b>joshuakemphttp://www.blogger.com/profile/15916453538115796012noreply@blogger.comtag:blogger.com,1999:blog-3935074684256715583.post-3470622677558449982016-11-07T21:15:00.002-05:002016-11-07T21:15:41.587-05:00How to automate everything - part 2Want to be more productive at your job? You don't have to learn how to code just yet to increase your productivity. Remember we want to <b>automate anything that we have to do 3 times</b>, we don't necessarily have to write the code to do it. If you use the internet in your day job and a web browser then listen up, I'm going to show you 2 tools / plugins that I use <b>everyday.</b><br />
<br />
<br />
<br />
<b>Auto Text Expander - Chrome Addon.</b><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIqNCFk8TsguL8HrRloFBEhwdlWNifBluMxv-zART0BzDQyWj0cmVWcfS2isgo0o7LujK0zQ1mkJrMVRK8WFQYsY5xi7M0_Vo32XGxY6JoMgLinchJ8njX3mZX2reDF7w61t7OeCbM91E/s1600/Screen+Shot+2016-11-07+at+8.35.24+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="404" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIqNCFk8TsguL8HrRloFBEhwdlWNifBluMxv-zART0BzDQyWj0cmVWcfS2isgo0o7LujK0zQ1mkJrMVRK8WFQYsY5xi7M0_Vo32XGxY6JoMgLinchJ8njX3mZX2reDF7w61t7OeCbM91E/s640/Screen+Shot+2016-11-07+at+8.35.24+PM.png" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
I use Auto Text Expander when I am writing test cases in Jira. Some people keep track of old test cases and try to reuse them. I find it easier to make common "snippets" and reuse them. For example I like to be able to type: "red" and have Auto Text Expander instantly auto type: "{color:red} {color}". This is a small example but there are <b>many </b>more examples that I use at work that are project specific. The whole key to getting started with automation is learning to become more aware of things that you repeatedly do everyday. If you are constantly typing the same long phrase, make a shortcut and have auto text expander do it for you!<br />
<br />
<br />
<br />
<b>Autofill - Chrome Addon.</b><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgoUxgLpTmSiob89C3jfRkxIuKBbBPafKFDIM-xXcax5i3fop_QiI2q6m1cd6h5qZcjrxdj3R9plF14gDWlqiIZlFgIxik91XmNOj6DHySu3flmE2iD9DQwKBfIOfGoeUFotpLmoL-d8Pk/s1600/Screen+Shot+2016-11-07+at+8.33.01+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgoUxgLpTmSiob89C3jfRkxIuKBbBPafKFDIM-xXcax5i3fop_QiI2q6m1cd6h5qZcjrxdj3R9plF14gDWlqiIZlFgIxik91XmNOj6DHySu3flmE2iD9DQwKBfIOfGoeUFotpLmoL-d8Pk/s640/Screen+Shot+2016-11-07+at+8.33.01+PM.png" width="640" /></a></div>
<br />
If you have to create dummy accounts or fill out the same forms everyday, do yourself a favor and download Autofill. I use Autofill to fill in my Test Executions in Jira among other things.<br />
<br />
<br />
You may not think the above are actually automation, but they are. <b>Anything you do 3 times in a day you should try to automate. </b>Which leads me to my last tip:<br />
<br />
<b>Never sign emails again!</b><br />
<br />
I hope you are already doing this, but if you aren't using your emails auto signature<b> </b>you need to now! Don't just read this post, <b>download the addons and START using them :-)</b> joshuakemphttp://www.blogger.com/profile/15916453538115796012noreply@blogger.comtag:blogger.com,1999:blog-3935074684256715583.post-91715383442282113482016-10-17T22:34:00.000-04:002016-10-24T20:36:34.167-04:003 reasons why you're not hired.<span style="background-color: white;">You want to know why you aren't hired? It's really simple actually, <b>three things</b>. See if any one of these is your personal kryptonite.</span><br />
<span style="background-color: white;"><b><br /></b>
<b><br /></b>
<b>Not studying 21 hours per week:</b></span><br />
<span style="background-color: white;">It doesn't matter if you are self studying, going through Free Code Camp, or an online boot camp. If you are not on your computer every night for <b>at least 3 hours</b>, you will never have the technical skills required to land an entry level tech job. This is <b>the most common </b>mistake I see with people who are trying to break into the tech scene. Sitting on Twitter or coding chats for 3 hours, sharing "great resources" is not studying. It's okay to do occasionally, but if that becomes your pattern, you won't get hired anytime soon.<b> </b></span><br />
<span style="background-color: white;"><br /></span>
<span style="background-color: white;"><br /></span>
<b style="background-color: white;">Don't have good people skills:</b><br />
<span style="background-color: white;">Only 50% of getting hired for an entry level tech position is technical ability. The other 50% is people skills and knowing how to market yourself. The best birthday gift I ever receiveed was a used worn out copy of "How to Win Friends and Influence People" by Dale Carnegie. My Aunt gave me the book and 1 stick of Wrigleys chewing gum for my 14th birthday. I guess I was a rude bad breathed teenager :-) That book changed my life, I always get compliments about my ability to connect with people. How can you nail interviews if you can't connect with people or you come across as rude? What's the sweetest sound to any person? <b>hint: it's in the book ( and no I don't get any kickbacks )</b></span><br />
<span style="background-color: white;"><br /></span>
<span style="background-color: white;"><br /></span>
<b style="background-color: white;">Don't know how to sell yourself:</b><br />
<span style="background-color: white;">I learned this skill from listening to an interview of Robert <span style="background-color: lime; color: black;"><span style="background-color: white; color: black;">Kiyosaki</span></span>. He talked about how he wasn't a great writer, <b>but </b>he was a <b>best selling <span style="background-color: lime; color: black;"><span style="background-color: white; color: black;">auth</span></span>or! </b>He made it very clear that he wasn't going to ever challenge the great works of fiction. He talked about how important it is to understand selling, if you ever want to make serious money. I am always shocked by how many technical people are way under payed. I have worked with senior level architects for test automation that were just terrible, yet highly paid. On the flip side I know many talented and skilled developers who make far below what they are worth. If you don't learn to sell yourself and abilities, you won't be able to nail interviews or even get interviews in the first place.</span><br />
<span style="background-color: white;"><br /></span>
<span style="background-color: white;"><br /></span>
<span style="background-color: white;">There are obviously other things that are important to know, but the above 3 are the most common issues that I see. It's not rocket science or magic to land a tech job. People all over the U.S. landed tech jobs today, you can join the ranks by following the above list! Don't give up, <b>you can do this!</b></span><br />
<span style="background-color: white;"><br /></span>
joshuakemphttp://www.blogger.com/profile/15916453538115796012noreply@blogger.comtag:blogger.com,1999:blog-3935074684256715583.post-4626500862783530222016-10-10T22:44:00.000-04:002016-10-24T20:34:49.873-04:00Why Free Code Camp is only for the elite 1%<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgt028TjXbfRNs88mOLpA6YE2hPmF1UtA7m7RlbxWKbkK7AAAK-3UM8e4GvYCBknCRIRS75bxm3hT6iaH4M4B8Ru1S50LcTgkjuw2s-MF4BG5vv22L-Pwv2EY_ZrZCf_SYcNgLg6ratgzM/s1600/IMG_0147.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="426" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgt028TjXbfRNs88mOLpA6YE2hPmF1UtA7m7RlbxWKbkK7AAAK-3UM8e4GvYCBknCRIRS75bxm3hT6iaH4M4B8Ru1S50LcTgkjuw2s-MF4BG5vv22L-Pwv2EY_ZrZCf_SYcNgLg6ratgzM/s640/IMG_0147.JPG" width="640" /></a></div>
<br />
<br />
Everyone loves Free Code Camp, why shouldn't they? Quincy Larson basically devotes his life to keeping Free Code Camp up and running and constantly growing, for that he should be very proud.</div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<br /></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
However if you are currently going through Free Code Camp's curriculum, hoping to one day land a job. You should stop as soon as possible.</div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<br /></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<b>Why?</b></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<br /></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
Free Code Camp is a great free resource for people, but it is lousy at getting people jobs. The entire Internet has <b>too many free resources! </b>The fact is that if your goal is to land a junior dev job by taking Free Code Camp's curriculum, you have about a <b>1% chance</b> of doing so.</div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<br /></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
If you look up Quincy Larson's profile on Quora he says <b>over</b> <a href="https://www.quora.com/topic/Quincy-Larson-1#!n=40"><b>300,000</b></a><b> </b>learn to code and build projects for non profits. According to their home page <a href="https://www.freecodecamp.com/"><b>Free Code Camp</b></a> has gotten <b>2,000 </b>people developer jobs. Let's do some basic math here:<br />
<br />
<div>
<b>That's a dismal 0.67% of people who start Free Code Camp actually get a paid dev job!</b><br />
<br />
I also clicked on the link on Free Code Camp to read the camper's stories, maybe I am wrong, but many of those stories aren't actually hired as devs or even in a real "techy" job. Click on the Linkedin profile and you will see things like "freelance developer". The point is maybe these <b>aren't </b>the 2,000 they are referring too, but still if only <b>1% </b>of people get hired that is <b>really low!</b><br />
<br />
Again I think it is a <b>great collection of free resources</b>, but I don't think it is a great way to go about getting a dev job. <b>Think about it, do you think you are the 1%??? </b>Now of course if you want to devote the next 2 years of your life to the program instead of going to college, that's cool.<br />
<br />
Quincy has a really good answer on Quora about this idea actually that I like:<br />
<a href="https://www.quora.com/Who-is-more-hirable-someone-with-3-years-of-work-experience-and-no-degree-or-someone-with-a-degree-but-with-an-internship-experience/answer/Quincy-Larson">Quincy's Answer</a><br />
<br />
Literally your chances of getting hired with free code camp are slim to none. If you want to do Free Code Camp to <b>get badges, and look cool, </b>that's fine. If however you have legit bills to pay or people you have to provide for financially then you are mainly wasting your time. If you want to have a tech job actually making money, a company paying you in the shortest amount of time than you need a clear plan to make that happen.</div>
</div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<br />
Quincy is being honest with what he does, it clearly admits No one has ever finished Free Code Camp<b>, as of January 2016</b><br />
<div>
<br /></div>
<div>
According to this answer by Quincy Larson on Quora:<br />
<a href="https://www.quora.com/How-many-people-have-finished-the-FreeCodeCamp-curriculum-so-far">How many people have finished Free Code Camp so far?</a><br />
<br />
I just think that the average person who signs up for Free Code Camp really believes that if they do the course work they will land a job. The truth is your chances are slim to none with Free Code Camp, you need to learn how to market yourself, not just write code. Remember this:<br />
<br />
<b>"Only 50% of landing an entry level tech job is coding ability, the other 50% is people skills and knowing how to market yourself!"</b><br />
<br /></div>
</div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
Don't just do coding tutorials and think someone will see your cool computer stickers one day at Starbucks and offer you a job. Figure out a way to be different, don't do what millions of other people are unsuccessfully doing. You can learn to code and you can get hired, but you need to set yourself apart from the rest of the crowd by being remarkable and unique!</div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<br /></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<br /></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<br /></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
</div>
</div>
joshuakemphttp://www.blogger.com/profile/15916453538115796012noreply@blogger.comtag:blogger.com,1999:blog-3935074684256715583.post-13168056891963865952016-10-03T23:01:00.001-04:002016-10-03T23:01:17.464-04:00How to automate everything series startingThe world is changing faster than ever, you need to be different than everyone else just to stay ahead. I've said it before, you should learn to code but don't become a developer, at least not at first. The fastest way into the tech field is through a QA position. <br />
<br />
Even if you don't want to be a QA or Dev, you should learn more about coding, it can only help you. I believe one of the best fits for people who want to write code is to get a test automation job. What better way to practice automating stuff than in your own life?<br />
<br />
I am starting a series called: "How to automate everything!" Even if you have no interest in being a QA or Dev, you know that learning more about coding will only help you. This isn't going to be scary, we'll take it in small bite sized pieces. Pick one thing at work that you do multiple times a day and try to automate it. <br />
<br />
<b>If you do something 3 times, you should try to see if there is a way to automate it. </b><br />
<br />
I know that may seem ridiculous to some, but what I do at work is to keep a list of anything that I do 3 times or more a day. I have a huge list to automate, I may not even get to them all, but what you will notice is that when you start keeping track of things you repeatedly do everyday, you will want to try and automate them.<br />
<br />
All of the things I will use or show you will be are free, I want to help anyone from day one who wants to automate something. The reason I am going to be showing you how to automate everything is so you can follow along and find a task of your own to automate!<br />
<br />
If you want to dabble with code I personally find <b>sooo </b>much more motivation and passion if it is a real problem that I am trying to solve. If you can make your job a little bit easier by automating one tiny aspect of it, why not? In the process you will learn some things about coding and how code works, as well as some free tools to check out.<br />
<br />
I will tell you a real life story of something that I automated to help my brother make more money. My brother is a salesman at a well known store that mainly sells T.V.s. The T.V.s aren't cheap, and he was constantly having this issue:<br /><br />A person would come in, like a T.V. and tell my brother the following:<br />
<br />
<b>"If that T.V. drops in price by $100 in the next month call me, I'll buy it! Here's my email and phone number."</b><br />
<b><br /></b>
What happened was my brother would write down phone numbers on pieces of paper, than after time he started adding them to an excel spreadsheet. Spreadsheets of the SKU numbers of the T.V.s and a list of people interested in them.<br />
<br />
I wrote a <b>very </b>simple script that checks if the price in the spreadsheet has changed ( it gets updated weekly from the company ). If the price had changed my script would then grab the SKU number of the T.V., and search the list of people who wanted a call if the price dropped. If the SKU number matched, it would send my brother an email with the person's name and tell him to email them about the price drop. <b>This is a simple example, that actually can make more money.</b><br />
<br />
If you automate something drop me an email and I can tell others about it or share a link to your blog. If you are super lazy or way over your head with not understanding code or how to automate something <b>but need </b>it automated, maybe you can hire me to do it for you :-) Feel free to shoot me an email.<br />
<br />
Follow along as I show useful ways to automate things, I will be using the easiest language to learn and use, <b>Ruby. </b>I don't care about showing you the coolest ways to automate things, I will show you how to get stuff done using simple scripts and tools!<br />
<br />joshuakemphttp://www.blogger.com/profile/15916453538115796012noreply@blogger.comtag:blogger.com,1999:blog-3935074684256715583.post-59964551649900385242016-09-22T22:14:00.002-04:002016-09-22T22:14:54.361-04:00Bash Aliases - Why you should use them and how to make them.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgT3M5Tz70HV3oT0xCXa5_ZSbNDjFadbzSSNuN1VN6so_VSzUqPPOvzhg-NwrrTKyh1x8WhjXCJ1KGZaRYr-mZsN82jpBHv22wgRELaNL1kGStQ5MzNuWAxT5qO-FQFtHgS5yZzMo7msA8/s1600/PFPNV9W5HK.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="425" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgT3M5Tz70HV3oT0xCXa5_ZSbNDjFadbzSSNuN1VN6so_VSzUqPPOvzhg-NwrrTKyh1x8WhjXCJ1KGZaRYr-mZsN82jpBHv22wgRELaNL1kGStQ5MzNuWAxT5qO-FQFtHgS5yZzMo7msA8/s640/PFPNV9W5HK.jpg" width="640" /></a></div>
<br />
I will be giving a <b>free</b> 30 minute Google hangout session showing people <b>why </b>to use bash aliases, <b>how</b> to make them, and<b> </b>some <b>more uses</b> for aliases that you may not have thought about.<br />
<br />
The first 7 people to email me and who can make the Google hangout time ( I will email it to you ), will be invited to the hangout session. Bash aliases are super useful and not hard to use, once you see how powerful they are you'll be making some of your own!<br />
<br />
I will be showing you some of my alias so you can follow along with me, you should have a Linux or Mac. I want everyone to participate that attends, I want you to walk away with a new skill and not just have watched me type :-) <br />
<br />
My email is:<br />
<b>joshuakemp85@gmail.com</b> <br />
<br />
<br />
<br />
<br />joshuakemphttp://www.blogger.com/profile/15916453538115796012noreply@blogger.comtag:blogger.com,1999:blog-3935074684256715583.post-56498436778394962372016-09-19T22:38:00.002-04:002016-09-19T22:38:32.922-04:00Ruby Poltergeist gem the best way to scrape dataOver the years I have used several different gems to scrape data. My 2 favorites being:<br />
Nokogiri and Mechanize. Both are very similar, but recently I had a challenge that neither Nokogiri or Mechanize could handle.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2QX1R-ENskoR6aS9KjQhqW3MEAjDV5yLe8nq24amOF4Mya_jijMbHn0cUCYzp2OeoTXScSEhk5J3CbE6IzHo68OIZj9e9fWJQE4LY29niJgvO2lhAjq7U7KGTvKwJhqSe8VyxGNxvCfk/s1600/795KVE89ZC.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="425" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2QX1R-ENskoR6aS9KjQhqW3MEAjDV5yLe8nq24amOF4Mya_jijMbHn0cUCYzp2OeoTXScSEhk5J3CbE6IzHo68OIZj9e9fWJQE4LY29niJgvO2lhAjq7U7KGTvKwJhqSe8VyxGNxvCfk/s640/795KVE89ZC.jpg" width="640" /></a></div>
<br />
<br />
<br />
<br />
Here's the situation:<br />
<br />
I needed to make a HTTP POST, passing basic auth to a login form, then go to another URL and scrape some data. All of this can be done using the Mechanize gem. The problem is after making the POST the site used AUTH0 for authentication, which was implemented using Javascript. The Javascript redirects to another URL looking for the successful login code from AUTH0.<br />
<br />
THE PROBLEM???<br />
<br />
Mechanize and Nokogiri don't handle Javascript. The good news is Poltergeist can easily handle Javascript, no sweat! After using Poltergeist one time to solve this challenge, it has become my <b>"go to"</b> gem for anything and everything!<br />
<br />
Poltergeist uses PhantomJS to run as a headless browser, I can still use the awesome Ruby gem Crack gem to parse any JSON or XML. I can't show you the exact example I was working on as I am not allowed, but I can show you something similar.<br />
<br />
There is as an old web based game called <b>Hyperiums II </b>I honestly don't play the game, but my friend does :-) This isn't a post about how to cheat the game ( although you could ), I want you to fall in love with this gem! Once you use it, it will become the gem you grab if you need to scrape data or have a simple task that you want to automate. Poltergeist is my secret weapon when doing any web scraping!<br />
<br />
Here is a sample Poltergeist script of logging into Hyperiums II and navigating to build factories. You can modify this code to do most any small task or test that you need!<br />
<br />
<a href="https://gist.github.com/joshuakemp1/c729523f8ad630d24d0c2bf9a541492a">Hyperiums II script</a><br />
<br />
<br />joshuakemphttp://www.blogger.com/profile/15916453538115796012noreply@blogger.comtag:blogger.com,1999:blog-3935074684256715583.post-58135376842994585782016-09-10T17:30:00.000-04:002016-09-10T19:57:57.643-04:00Mr. Kemp you have been Terminated<div><span style="font-family: inherit;"><i>Mr. Kemp we have decided to terminate your position, effective immediately. Sign these documents please, I will need your badge and computer, best of luck for your future.</i></span><br />
<span style="font-family: inherit;"><i><br />
</i></span> <br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggUODXRR5zlOJ7moFe-D8kNfgJNXkbwMaCxPTlr9bN3_G-2Igbz84_aXWRTsoTLU2BXbDrdYheVewyz4BoxmtiD9GjTDyMvZC1Y-R2WU6uWvio1jS2a77CLkTv4PSVbTcqizcOVJQKy_00/s1600/officejob.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="426" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggUODXRR5zlOJ7moFe-D8kNfgJNXkbwMaCxPTlr9bN3_G-2Igbz84_aXWRTsoTLU2BXbDrdYheVewyz4BoxmtiD9GjTDyMvZC1Y-R2WU6uWvio1jS2a77CLkTv4PSVbTcqizcOVJQKy_00/s640/officejob.jpg" width="640" /></a></div><br />
</div><div><span style="font-family: inherit;">There is something inside of every provider that freaks out when being let go. As I said goodbye to my former co-workers and got into the elevator, tears started to well up in my eyes. I got home in record time, there is no traffic at 11am.</span></div><div><span style="font-family: inherit;"><br />
</span></div><div><span style="font-family: inherit;">It didn't matter to me that the company had laid off 11 other people the past week because they hadn't landed any new contracts. The reason didn't matter at all.</span></div><div><span style="font-family: inherit;"><br />
</span></div><div><span style="font-family: inherit;">What matters was figuring out how I was going to get my next job AND FAST!!! I had no clue this was coming. I was told I was doing a great job and wasn't even looking for other jobs.</span></div><div><span style="font-family: inherit;"><br />
</span></div><div><span style="font-family: inherit;">I will spare you all the depressing details and stress I went through. What came out of the experience was 9 days after being laid off I accepted a job offer for a mid level position paying $11K more!</span></div><div><span style="font-family: inherit;"><br />
</span></div><div><span style="font-family: inherit;">I went on to coach other people for the next 12 months. I helped get people hired in record time all over the U.S. </span></div><div><span style="font-family: inherit;"><br />
</span></div><div><span style="font-family: inherit;">You don't have to cry like me, you don't have to stay awake at night with heartburn and stress unable to sleep hoping to land a job.</span></div><div><span style="font-family: inherit;"><br />
</span></div><div><span style="font-family: inherit;">You don't have to read the 2,000+ emails I've sent to coaching clients listening, understanding their story and situation.</span></div><div><span style="font-family: inherit;"><br />
</span></div><div><span style="font-family: inherit;">I poured my heart and soul into <a href="http://thefastestwaytolandatechjob.teachable.com/courses/thefastestwaytolandatechjob/">this course.</a> I made the course I wish I could have had when I was let go. I would have slept better. I wouldn't have felt like I aged a year in those 9 days.</span></div><div><span style="font-family: inherit;"><br />
</span></div><div><span style="font-family: inherit;">If you need a tech job in the shortest amount of time possible, this is <a href="http://thefastestwaytolandatechjob.teachable.com/courses/thefastestwaytolandatechjob/">the course</a> for you, this isn't a learn how to code course, this is a : "LET'S GET A JOB COURSE".</span><br />
<span style="font-family: inherit;"><br />
</span></div><div><span style="font-family: inherit;"><br />
</span></div><div><span style="font-family: inherit; font-size: large;"><b>I hope to see you in class!</b></span><br />
<span style="font-family: inherit;"><br />
</span> <span style="font-family: inherit;">Tweet one of the course links below and like the ‘course’ <a href="https://www.facebook.com/thefastestwaytolandatechjob/">Facebook page</a> and I will personally send you a free copy of my book: “No Degree, No Problem”! The course officially launches Monday September 12 but the first few lectures are up now if you want to get a jump start! </span><br />
<span style="font-family: inherit;"><br />
</span> <br />
<div style="text-align: center;"><span style="font-family: inherit;"><br />
</span></div></div><div><div style="text-align: left;">People will go to bootcamps and take coding tutorials BUT when they are REALLY ready to land a job this is it here: <a href="http://bit.ly/2czEzCv">http://bit.ly/2czEzCv</a> ( <span style="font-size: large;"><a href="http://ctt.ec/4h1U0">Tweet this</a></span> )</div><div style="text-align: left;"><br />
</div><div style="text-align: left;">Need a tech job fast? Check out @joshuakemp01 's new course. A proven method and fastest way ever developed <a href="http://bit.ly/2czEzCv">http://bit.ly/2czEzCv</a> (<a href="http://ctt.ec/AvVMa"> <span style="font-size: large;">Tweet this</span></a><span style="font-size: large;"> </span>)</div><div style="text-align: left;"><br />
</div><div style="text-align: left;">Anything worth having takes hustling and an effective roadmap. Land a dev job now: http://bit.ly/2czEzCv ( <a href="http://ctt.ec/9c6vs"><span style="font-size: large;">Tweet this</span></a> ) </div></div><div><br />
</div>joshuakemphttp://www.blogger.com/profile/15916453538115796012noreply@blogger.comtag:blogger.com,1999:blog-3935074684256715583.post-31786097534049536672016-08-28T21:19:00.000-04:002016-08-28T21:19:55.582-04:00The Fastest Way to Land a Tech JobWhere have I been for the past 2 months??? Working, hustling!!! I keep trying to stop coaching but I have a serious waiting list, and people keep emailing me!!! It was getting hard to keep up with. I still have a passion to help others land a tech job, get out of their current career and help those who have dropped out of coding bootcamps.<br />
<br />
I decided to take everything I have learned from coaching people on how to get a: Junior Dev, Test Automation, or QA job from all around the country and condense it down into <a href="http://thefastestwaytolandatechjob.teachable.com/courses/thefastestwaytolandatechjob">a course</a>. I've taken what I've learned from walking people through the process of landing their first tech job. On average I would send 200 - 300 emails to each person over the course of the coaching! Instead of you having to read all those emails and try to figure out what worked, I have done it for you. In a simple at your own pace course and at a more affordable price too!<br />
<br />
<a href="http://thefastestwaytolandatechjob.teachable.com/courses/thefastestwaytolandatechjob">The Fastest Way to Land a Tech Job</a> course officially launches September 12th, but I am allowing people to sign up for a pre release launch and have access to the first 4 lectures ahead of time! You can find more info about what's in the course and watch the promo video at the link above.<br />
<br />
<br />joshuakemphttp://www.blogger.com/profile/15916453538115796012noreply@blogger.comtag:blogger.com,1999:blog-3935074684256715583.post-76861570927525934082016-06-04T22:35:00.002-04:002016-06-04T22:35:56.914-04:00How to become a hacker: Part 1I know it's been a long time since blogging, I have been finishing up with coaching clients, working, and studying in the evenings. I have decided to show you what I have been learning and how you can do the same if you want.<br />
<br />
The biggest advantage I have with becoming a hacker has been having a friend ( who is a hacker ) agree to mentor me. My end goal is to get hired as a Ethical Hacker / Pen Tester, I am not simply learning to learn. I want to learn how to hack <b>and </b>be good enough to actually go out and get hired as a hacker. I am not learning to impress anyone or look cool, the mission is:<br />
<br />
<b>Get good enough to land a job as a hacker.</b><br />
<b><br /></b>
One of the first questions my mentor asked me ( who is on a Red Team currently ) was what <b>type </b>of security testing / hacking do you want to get into? He compared me wanting to become a hacker as the same as someone saying:<br />
<br />
<b>"I want to get into Computer Science."</b><br />
<b><br /></b>
That is too vague, computer science is not specific enough, you could become a programmer, you could become a test automation engineer, you could do Big Data, the possibilities are endless. The same is true with becoming a hacker, that is too vague, you need to get clear on what you will be security testing / hacking.<br />
<br />
I decided on web application security pen testing since I like working with web apps and am most familiar with them. My hacking training is specifically geared toward learning web application pen testing techniques.<br />
<br />
So the first rule to becoming a hacker is:<br />
<br />
<b>Get clear on what type of security testing / hacking you want to do, don't try to learn everything.</b><br />
<b><br /></b>
On that note, I am learning some of the lingo used by real world hackers, and have found that they actually <b>do not like </b>the term 'Ethical Hacker', they call themselves 'pen testers', or penetration testers' but almost never Ethical Hackers.<br />
<br />
<b>The next issue is where and what to start learning?</b><br />
<b><br /></b>
There are so many resources and places to learn you can absolutely waste your entire life trying different courses and tutorials. Everything I am writing about is my own personal journey to becoming a web application pen tester, with that said here is the first resource that you need:<br />
<br />
<b>http://www.cs.fsu.edu/~redwood/OffensiveComputerSecurity/lectures.html</b><br />
<b><br /></b>
<b><br /></b>
<b>Start on lesson 16and go through lesson 19. </b>The other lessons are good, but I am told are over my head for now. The hardest part of this training is the homework, reading 80 - 100 pages after each lesson takes a long time and even longer to really understand what you are reading. The book you will need is:<br />
<br />
<b>Web Application Hackers Handbook.</b><br />
<b><br /></b>
The to learning pen testing is <b>not </b>simply watching a video and reading a book, pen testing is all about <b>hands on. </b> You absolutely must do what the book recommends as exercises or else you will only get the theory but not the actual how to.<br />
<br />
<b>How to actually do the exercises?</b><br />
<b><br /></b>
You need a web application that you are actually allowed to pen test <b>without </b>going to jail or being illegal. The solution is:<br />
<br />
<b>https://github.com/WebGoat/WebGoat</b><br />
<b><br /></b>
Web goat is the best way to actually try out all the techniques you have read about. Watch the lesson, read the homework go through some challenges using web goats insecure web application. This is how I am learning and will be for sometime. <br />
<br />
<br />
<b>Tools:</b><br />
<b><br /></b>
The first thing you need to do is to <b>only </b>use a Virtual Box or VM for <b>all </b>of your testing in case something goes wrong, you can simply delete it. I did this wrong before, trust me you need a VM.<br />
<br />
<b>Install Virtual Box</b><br />
<b><br /></b>
<b>Install Kail:</b><br />
<b>https://www.offensive-security.com/kali-linux-vmware-virtualbox-image-download/</b><br />
<b><br /></b>
On Kali install:<br />
<br />
<b>Firefox</b><br />
<b>Burp suite ( latest version )</b><br />
<b><br /></b>
There are more things you need to know, you will need to know how to set up a browser proxy to talk to Burp Suite so that you can test the web app. If there is interest I will write some more posts on more specifics ( as they can be tricky when you are new to it ) if I receive enough emails.<br />
<br />
The last thing I will say is that learning how to code was tough, getting an actual junior dev job was even harder, <b>but </b>none of this will be even close to how hard it will be to land an actually job as a pen tester at a company. Companies want you to basically be able to hack an international bank and not get caught with <b>very little </b>supervision. I am nowhere even remotely close to that level of skill but know I will get there eventually. Follow along on this journey if you want me to show you the way!<br />
<br />
Never give up, you can do it!<br />
<b><br /></b>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />joshuakemphttp://www.blogger.com/profile/15916453538115796012noreply@blogger.comtag:blogger.com,1999:blog-3935074684256715583.post-16983570208221435692016-03-26T23:55:00.000-04:002016-03-26T23:56:06.786-04:00End of coaching, start of Ethical Hacking journey...There is only so much time in a day, we all have the same amount, doesn't matter who you are or how much money you make :-)<br />
<br />
My original goal with learning to code was to become a senior Rails developer one day. I still like Rails and love coding, but I am turning my focus towards one day becoming an Ethical Hacker. This goal will take a while I am sure, as breaking into the field is much harder than getting hired as a developer.<br />
<br />
I love coaching and have several clients that I am currently working with, I love seeing people get hired and change their lives for the better! I spend my evenings <b>always </b>learning something new, whether it is coaching a client or something related to programming / testing. I have <b>a lot </b>to learn if I am ever to get hired as an Ethical Hacker, and as such need to create more time for myself to grow. I have decided to stop coaching people from this point forward. I will finish the coaching plans that I have with current clients, but I will no longer be accepting any new clients.<br />
<br />
I have helped around 30 people land testing or development positions since starting my blog. In my book 'No Degree, No Problem' I share a lot of knowledge about switching careers, but I think down the road I will write a new book that gives secrets that I kept for coaching clients only. Secrets that make landing a job mere child's play :-) I don't have the time to write the book now, but I think I will write it if I get enough interest from people. I think the book would change the way that people go about trying to get an entry level job in the testing or development field.<br />
<br />
Normally I don't ask for help on the blog, but I have decided since I have many thousands of readers, why not ask for advice myself with my Ethical Hacker journey. <i>I have Googled the term</i>, <i>I have read <b>many</b> online articles and sites suggesting certifications</i>, but I would <b>love</b> to hear from someone who actually got hired in Cyber Security. If that is you, I would greatly appreciate any and all advice that you can give me! My email is: <b>joshuakemp85@gmail.com</b><br />
<br />
Again, this will take me some time I am sure, I will keep you all posted as things progress. I still love coding and use Ruby almost everyday which is my favorite language, I still plan on blogging as usual!<br />
<br />
<br />
Keep coding peeps, <b>you can do it!</b>joshuakemphttp://www.blogger.com/profile/15916453538115796012noreply@blogger.comtag:blogger.com,1999:blog-3935074684256715583.post-89565420625944447052016-03-04T23:17:00.000-05:002016-03-04T23:20:29.035-05:00How to make work easier and more productive.<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
I landed a couple of more coaching clients and have come to the realization that I can only coach so many people at any one time. As of right now, I can only take on 1 more client ( until a current client gets hired ). After 1 more client, I will be starting a wait list, first come first serve, if you want to be on that list let me know. I never want to get so busy I can’t give high quality, individual attention. </div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<br /></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
I was hired in August 2013 at ZipList in Reston Va, as of March 4th 2016 I have worked at 4 companies.</div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<br /></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<b>Ziplist - Where I wore many hats as a junior developer</b></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<b>Perfect Sense Digital - Where I started learning automation using Ruby</b></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<b>Fidelity Investments - Where I used Javascript to automate a SPA application</b></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<b>IBM - Where I am currently</b></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<br /></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
Through all of those companies I have learned a lot and have found common things I do at each new job that have helped me to be significantly better and more productive at work. I hope they can help you as well!</div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<br /></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<b>Pocket</b> - you find something you want to read but don’t have time right now. I use Pocket browser Addon for Fire Fox and Chrome, as well as on my iphone. This way I can always find what I want to read.</div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<br /></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<b>Evernote</b> - Simialr as above. I use Evernote for personal notes, potential ideas, blog posts, I even have a note for interesting things I learn about Ruby :-) These notes aren’t tied down to any one machine and you can use the app on your phone as well to sync.</div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<br /></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
Here's an example of my Evernote:</div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHgrfGvk-kwv-W8G06eNu_buSBlqEiRsWwjnHQugFssAUE_Xqbw8vmE-9QT5gpYJgZq7qn9BzPr9KBsQ3xkQ1xR5oSDp0UZyTxOtMENmyFqm5rYzWOwx1yRH5XC5QXqbTDc1ngskBrGnM/s1600/evernote.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="166" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHgrfGvk-kwv-W8G06eNu_buSBlqEiRsWwjnHQugFssAUE_Xqbw8vmE-9QT5gpYJgZq7qn9BzPr9KBsQ3xkQ1xR5oSDp0UZyTxOtMENmyFqm5rYzWOwx1yRH5XC5QXqbTDc1ngskBrGnM/s640/evernote.png" width="640" /></a></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<br /></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<br /></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<b>Bookmarks</b> - I used to hate Bookmarks, but now I love keeping a detailed list of all the URLS I may need, especially when at a new company. I make folders for ruby, rails, automation, hacking, work, and save URLS that I want to reference later.</div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<br /></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<b>Alfred</b> - Alfred is basically a tool I use for web shortcuts. I used to use <b>a lot </b>bash shell aliases, but find myself using Alfred more to quickly and easily go to places on the web. You can even add different parameters to the end of a URL to go to different JIRA tickets.</div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<br /></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
Here's an example of how to add a custom Jira ticket search.</div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<br /></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
Go into the Alfred Preferences:</div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8utFxjMGBL-GKurCu1LbUPaFgPMwkGh45bAfe2-hu9fpMxuJ893MLt_olftpcIxROkK9S7eyF2pe5i62cMDJBp3mzSWVy33iRUsucuyqQALbfsy-KAWVD9EaZjUiuncNDdSWra0RnT9I/s1600/alfred1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="363" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8utFxjMGBL-GKurCu1LbUPaFgPMwkGh45bAfe2-hu9fpMxuJ893MLt_olftpcIxROkK9S7eyF2pe5i62cMDJBp3mzSWVy33iRUsucuyqQALbfsy-KAWVD9EaZjUiuncNDdSWra0RnT9I/s640/alfred1.png" width="640" /></a></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<br /></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
Next add the 'custom web search' in this case for JIRA:</div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhK76hq2lhS0Fu4z0KRpCdywv61AvkXSqe9oz5a3IuwxVjV3MkzS88Iduj4PAGjwFpN2f5o1Y4YRIqoHL6-7dbEy3ZX_PiyJ9IwwR3IcfTJHiajfIscdDGC5kpaFPemCbJQ4gQ5HvKk8Sc/s1600/alfred2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="406" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhK76hq2lhS0Fu4z0KRpCdywv61AvkXSqe9oz5a3IuwxVjV3MkzS88Iduj4PAGjwFpN2f5o1Y4YRIqoHL6-7dbEy3ZX_PiyJ9IwwR3IcfTJHiajfIscdDGC5kpaFPemCbJQ4gQ5HvKk8Sc/s640/alfred2.png" width="640" /></a></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
Hit the 'option key and the space bar' to open Alfred and call the Jira URL shortcut:</div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvE3YI5PPHLSTpA-BUGjvuti5wgY60YRvfe77ez3EJSrUOBSz-sD2zJY1XAkGFkz8EIXbOS0VWFmsBqpyuCSzu5NH-8FOumMFOd1wdsWC-fzxruADgKM4Kn_f2AbJImqmhqKuWoMxUJVc/s1600/alfred3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvE3YI5PPHLSTpA-BUGjvuti5wgY60YRvfe77ez3EJSrUOBSz-sD2zJY1XAkGFkz8EIXbOS0VWFmsBqpyuCSzu5NH-8FOumMFOd1wdsWC-fzxruADgKM4Kn_f2AbJImqmhqKuWoMxUJVc/s640/alfred3.png" width="640" /></a></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<br /></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<br /></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<br /></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<b>Chrome</b> - I used to get to a new job and then have to download and slowly add all the things that I liked on the new computer. I realized that if I sign in as my own <b>profile</b> on Chrome browser that no matter where I go or which computer I use, I always have all the addons and everything I like without having to do any setup!</div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<br /></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
I used to use a super long bash alias called ‘sd’ ( start day ) I would open my computer at work. Open the terminal and the first thing I would do is type ‘sd’. I would then go get a drink or use the restroom while that long alias would open all the applications that I typically used each day, open up all browsers I wanted open and then go to the most common URLS that I needed to look at first thing in the morning. </div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<br /></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
Now I use some bash aliases, but for common URLS that I need open each morning, I simply use Chrome’s built in settings and have it open the 4 URLS I look at every morning by default whenever it opens up Chrome.</div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<br /></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
Here's my browser toolbar just as an example you can also see the Pocket icon:</div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidem9um6P8L3b2egngyv9S_xHP416aXWGFt2FpaBl2YkQA1MT3vVFHL05Is4D-L_ozRJ8Yurysu3DmbFZZ5c85m8alOS-a8w39POO3lmmDA2g89MIeC6_m_cpsJUs8lmtohifInFnHvCc/s1600/pocket_google.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="90" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidem9um6P8L3b2egngyv9S_xHP416aXWGFt2FpaBl2YkQA1MT3vVFHL05Is4D-L_ozRJ8Yurysu3DmbFZZ5c85m8alOS-a8w39POO3lmmDA2g89MIeC6_m_cpsJUs8lmtohifInFnHvCc/s640/pocket_google.png" width="640" /></a></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<br /></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
Here is where to set the deafult URLS to open in Chrome:</div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXqiZe9eVIf6ADCDNNCGuMP794RdbGsGY2U80X3Ye_YMn1-_yg4J74otz2cN9AFbvRAWy_8OYknfVR76o6hjCUSia-P8-HXQF5UUA6osBc1wOERozunofam5AgRtI0fJWyPlcaBT_E39k/s1600/chrome+url.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="468" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXqiZe9eVIf6ADCDNNCGuMP794RdbGsGY2U80X3Ye_YMn1-_yg4J74otz2cN9AFbvRAWy_8OYknfVR76o6hjCUSia-P8-HXQF5UUA6osBc1wOERozunofam5AgRtI0fJWyPlcaBT_E39k/s640/chrome+url.png" width="640" /></a></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<br /></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<br /></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<br /></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
I still <b>love Bash aliases</b> ( shortcuts ) to go to any place in the terminal quickly. For example</div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
if you have a developer section where you always write your code simply have a word like</div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
‘developer’ that takes you to that PATH without having to type in the long PATH everytime.</div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<br /></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
Here's an example of some ~/.bash_profile aliases that I use:</div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjotGZVXlkjBsWxzHkjqc121PUezOerCSyEPKvMLXtJ32So_PTQTa0zB_9kVd2RFxK6rqdpoT36F68v-ct12SXYnIXvLr0UzIGLbSlMfvx6xkp9ZgBbnrlS_55gc3vHu-QfVdW0lIQ0Ru4/s1600/aliases.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="364" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjotGZVXlkjBsWxzHkjqc121PUezOerCSyEPKvMLXtJ32So_PTQTa0zB_9kVd2RFxK6rqdpoT36F68v-ct12SXYnIXvLr0UzIGLbSlMfvx6xkp9ZgBbnrlS_55gc3vHu-QfVdW0lIQ0Ru4/s640/aliases.png" width="640" /></a></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<br /></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<br /></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<br /></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
I also like the <b>Brew add-on ‘ack’</b> its like a much easier version of grep. You simply type in a phrase ( string ) and it will search in that folder and <b>all sub folders</b> for whatever you are looking for. It also highlights all the matches. Very simple, very easy, I <b>love it!</b></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<span style="-evernote-sentoj-emoticon: true;"><br /></span></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<span style="-evernote-sentoj-emoticon: true;">Here's an example of me using 'Ack':</span></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<span style="-evernote-sentoj-emoticon: true;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhh5r3bDB_aLRr2HkW2YAVRu08a2MQvWIXrhVYpAns6olP1CPC_bW9z6AGBajsofOvtWGpJxLJX0Ubqx3HojvGPpEHPf7Io8BqrgfLsoxng3T3QFTnuauA8uEhTWgVVYTW0L5RGZwYuXYg/s1600/ack.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="214" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhh5r3bDB_aLRr2HkW2YAVRu08a2MQvWIXrhVYpAns6olP1CPC_bW9z6AGBajsofOvtWGpJxLJX0Ubqx3HojvGPpEHPf7Io8BqrgfLsoxng3T3QFTnuauA8uEhTWgVVYTW0L5RGZwYuXYg/s640/ack.png" width="640" /></a></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<span style="-evernote-sentoj-emoticon: true;"><br /></span></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<br /></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<br /></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
As a general rule, whenever you do something more than 3 - 4 times, you should try to find some way to automate it. One of the biggest failings I have had in this area was not using a <b>Gmail signature. I</b>nstead every time I would write my name and a farewell ending. I wrote that manually <b>thousands</b> of times till just recently, when I realized that I should use a signature and save time.</div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<br /></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
All these things are small, but they add up and make you faster and more productive. It also helps you to start looking for anyway to automate repetitive tasks. If something can be automated at work or on your computer that is simply boring and redundant, you should do it!</div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<br /></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<b>Learn to type</b>. it will make you WAY more productive and will help your neck to stop hurting from hunching over looking at the keyboard. In August 2014 at my first job after ZipList launched a new version of their app, I was tasked with responding to <b>100 - 200 emails every week</b>. I understood why they needed me to spend all day trying to reproduce bugs and then sending a response back to the user, but I soon found it <b>very boring</b>. </div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<br /></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
In order to deal with the boredom, and because my neck was killing me, <b> I decided to simply stop looking at my hands anymore, cold turkey</b>. I seriously sucked! When I went on <a href="http://play.typeracer.com/">http://play.typeracer.com/</a> I averaged 12 - 14 words per minute. I was so slow people at work asked me what I was doing sometimes ( apparently they noticed me using the delete key every other letter ) <span style="-evernote-sentoj-emoticon: true;">😃</span>
</div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<br /></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
Long story short 18 months later I just got the greatest compliment from a co worker who said: <i>“Wow, you type really fast!”</i> I don’t really, I type around 50 WPM. Typing is not as powerful as coding, but it really does help you to have a much easier time and be far more productive while working. Also if you are going to be using a computer for 8 - 10 hours per day you should learn how to type.</div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoiqp4lHCyuEbS-t8csrc-UBwgIaWQzG32Jq3vk9-PMpkX50F33a5PlYNOeS37H8f0_edvC1uw2VpO_TufIQiVIICVhWRdCfdBvSHxqx4S6XVnFgsvAkUSGNzojzwT0XhxLG7HKhRPz-c/s1600/Screen+Shot+2016-03-04+at+10.46.18+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="146" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoiqp4lHCyuEbS-t8csrc-UBwgIaWQzG32Jq3vk9-PMpkX50F33a5PlYNOeS37H8f0_edvC1uw2VpO_TufIQiVIICVhWRdCfdBvSHxqx4S6XVnFgsvAkUSGNzojzwT0XhxLG7HKhRPz-c/s640/Screen+Shot+2016-03-04+at+10.46.18+PM.png" width="640" /></a></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<br /></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<br /></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
You don’t have to do my method of learning to type ( no training or typing courses ) just cold turkey not looking at my fingers anymore. Try to learn to type some way that works for you!</div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<br /></div>
<!--?xml version="1.0" encoding="UTF-8" standalone="no"?-->
<br />
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
Keep coding peeps, <b>you can do this!</b> </div>
joshuakemphttp://www.blogger.com/profile/15916453538115796012noreply@blogger.comtag:blogger.com,1999:blog-3935074684256715583.post-75716168161571913382016-02-20T22:17:00.002-05:002016-02-20T22:17:41.596-05:00How to easily pass Free Code Camp's Algorithm Scripting challenges - OR - Why you shouldn't use the browser challenges<u><i><b>New coaching testimonial coming on Sunday!</b></i></u><br />
<br />
While researching Free Code Camp ( It changes quickly so I wanted to make sure what I was saying was up to date ), I found out some issues with the browser based scripting challenges that really bothers me. As of last year, I was able to use the Ramda.js library in the browser challenges online.<br />
<br />
I tried every way to call/require the Ramda.js or Lodash.js libraries without any success. I searched online for 30 minutes trying to figure out how to use Ramda.js with the online coding challenges and couldn't find any information. I personally think the Ramda.js library was removed. Either way, it should <b>not </b>be this hard to figure out how to use a Javascript library like Lodash or Ramda with the challenges.<br />
<br />
I know as of August last year (2015) Quincy Larson said on Quora that you could use Ramda and Lodash in the online challenges:<br /><a href="https://www.quora.com/What-are-some-websites-to-practice-mini-problems-for-coding">https://www.quora.com/What-are-some-websites-to-practice-mini-problems-for-coding</a><br /><br />I also can show you how I used Ramda.js last year with Free Code Camp online challenges:<br /><a href="https://github.com/joshuakemp1/FREE-CODE-CAMP/tree/master/ecc">https://github.com/joshuakemp1/FREE-CODE-CAMP/tree/master/ecc</a><br />
<br />
<br />
I hope I am wrong, I hope someone will clear up this issue and show me how to use Ramda.js with Free Code Camp, without it, I don't think you should use the online editor. I recommend copying and pasting the challenge into a text editor and then using Lodash or Ramda libraries. <br />
<br />
The article below is how I <b>used to easily solve the Free Code Camp challenges, </b>hopefully, this will help you solve the challenges easier <b>or switch over to Ruby :-)</b><br />
<br />
<br />
<b>This was my original post as of a month ago.</b><br />
<br />
I've been asked by many people to write how to pass the Free Code Camp scripting challenges. Here goes:<br />
<br />
<br />
<b>NOTE: I love Free Code Camp's Algorithm challenges and recommend them to my coaching clients all the time.</b><br />
<br />
<br />
There are several reasons why Free Code Camp's challenges are hard:<br />
<br />
<br />
<br />
<ul>
<li>When you run your code you don't get to see the output ( sometimes you get some sort of output, put it's not the same as running it in a REPL on your terminal ).</li>
<li>You can use the Ramda.js Library but it is not advertised on the site at all.</li>
<li>Nowhere does it tell you on Free Code Camp how to call the Ramda.js Library.</li>
<li>Why would you have a Javascript library built into the Bonfire Algorithm challenges but not tell beginners how to call a Library?</li>
<li>Using built-in methods is frowned upon in the community, using nested loops is considered better and more 'vanilla Javascript'.</li>
</ul>
<br />
<b><br /></b> <b><br /></b> <b>8 steps to solve them easily</b><br />
<b><br /></b> Here's how to get around these issues:<br />
<br />
(1) As soon as you get to Bonfire Algorithm Challenge, the very first thing to do is click on the <b>'Run tests' button.</b><br />
<b><br /></b> You want to find out all of the edge cases that you need to solve with your code. <b>Leave this browser window open to reference.</b><br />
<b><br /></b> (2) Next copy and paste the Bonfire Algorithm Challenge code into your text editor. <b>This is where you will actually work on solving the challenge</b>. Once you solve one of the cases you need to solve for the challenge, paste it into the browser and run the tests. Using this approach you will eventually solve the entire challenge.<br />
<br />
(3) Look at the <b>'helpful links'</b>, they are basically the methods you will be using to solve the challenge. NOTE: This is the best new feature that Free Code Camp has added lately, this is exactly what I used to do in the past, <b>look for a Javascript method that could solve the challenge first before doing anything else.</b><br />
<b><br /></b> <b><br /></b> (4) Next look at <a href="http://ramdajs.com/0.19.1/docs/">Ramda.js Docs</a> and see if you can find a <b>built-in method</b> that you can use to solve or partially solve the challenge.<br />
<br />
<br />
(5) Make sure you test that <b>you are requiring and using the Ramda.js library correctly on your local machine</b>. First install Ramda with NPM, if you don't have NPM you will need to install Node.js. After installing Node and Ramda, open the REPL from the command line and make sure you can access the Ramda methods.<br />
<br />
(6) Always be checking your codes output. Use <b>'console.log' </b>all through your code if you don't know what something is doing or want to see output for a particular piece of code.<br />
<br />
(7) Always <b>avoid using multiple nested loops</b> if possible as your solution. No company will ever want you writing code like that in production. Ignore people who say to learn that way first and then use methods. Everytime you use a loop you add another layer of complexity to your code, use the built-in methods as much as possible.<br />
<br />
(8) First try to solve the challenge <b>anyway </b>possible, if you get it solved, then see if you can clean up your code or solve the challenge in a cleaner way. Don't strive for perfect when you are just starting out. Focus on completion and <b>solving the challenge first, pretty second</b>.<br />
<b><br /></b> <b><br /></b> Learn to use your REPL and local machine instead of relying on the Free Code Camp online editor. Focus on the output of your program and try to slowly solve one piece of the challenge at a time. Never get discouraged, if it takes you 3 days to solve a challenge that's okay, you will have learned a lot about coding in those 3 days. Don't worry if someone else can solve a challenge in 3 minutes, they have probably seen similar challenges before.<br />
<br />
<br />
Keep coding peeps, you <b>can do this!!!</b><br />
<br />
<br />
<br />
<br />joshuakemphttp://www.blogger.com/profile/15916453538115796012noreply@blogger.comtag:blogger.com,1999:blog-3935074684256715583.post-66338613277526357002016-02-05T19:38:00.000-05:002016-02-05T22:18:21.370-05:00Why you should learn to code but not become a developer<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
I sell several copies of my book everyday that promises you can learn to code and land a Rails job. That is still true. What I am saying with the title of this blog, is this: </div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<br /></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
It is <b>soo</b> much easier to learn how to code and land a QA or Test Automation position, than it is to start out as a full blown developer. Being able to solve basic coding algorithms on <a href="http://www.freecodecamp.com/">Free Code Camp</a> is not the same as being a developer. NOTE: Free Code Camp is great, this is not about them.</div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<br /></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<br /></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
At my first job, I wore many hats, did some email management of the support Queue, did some testing, some front end work but it wasn't a full blown developer <b>only </b>position. At my second job I did test automation which basically meant I was using Ruby to keep track of performance metrics and wrote several different scripts that solved/tested various things. I think the longest script I personally wrote was 387 lines of code. </div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<br /></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<br /></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
There is nothing wrong with what I did, I mean my code worked, it solved the problem and the company still uses it to this day everytime a certain build is triggered. Honestly, the script was me 'hacking' trying to figure out how to solve the issue, which I did. The script wasn't written in OOP, ( Object Oriented Programming ), it was just me functionally writing code to solve the issue. It could have been written in probably 100 lines of code if it was written in OOP.</div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<br /></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<br /></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
I am not very good at OOP. I don't instinctively think in that manner, I am learning more about OOP, I need to improve the way I write code. <b>I love learning and love programming, so this is a 'good problem' to have :-)</b></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<b><br /></b></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
So back to my point, you can learn to code and land a full blown Rails job. What I am seeing in my coaching and from the emails I receive is that most humans who have <b>zero </b>coding backgrounds will not be comfortable doing this. You <b>may </b>be able to land the job, but you will be struggling all the time. I love that I get to use Ruby at my day job to write automation, every day I get to improve my coding abilities.</div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<br /></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
I think learning to code can be broken down like this:</div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<br /></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<b>Learn the basics of coding:</b></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<b><br /></b></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<b>If, else statements</b></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<b>Loops</b></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<b>variables</b></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<b>data structures: Arrays, Strings.</b></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<b><br /></b></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
Knowing the above you can do <b>a lot. </b>You can solve most problems that you will face in test automation at an entry level. This is what I did at my first job, I knew Arrays and Strings well and could always solve an issue by looping over it enough times and throwing in some control statements. You can solve 80% of problems with the above which I think is a really positive and encouraging thing for beginners new to code. <b>NOTE: </b>Yes, I knew more than the above, yes I passed tutorials on Classes and OOP concepts, but I didn't actually ever use them in real life.</div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<br /></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<b>Learn more of the language:</b></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<b><br /></b></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<b>Hashes</b></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<b>Recursion</b></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<b>Different types of loops</b></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<b>Ternary operators</b></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<b>Case statements</b></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<b>Code indentation</b></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<b>Cleaner code, not being redundant with code.</b></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<b><br /></b></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<b><br /></b></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
The second job I started to use this more, this is when I started to use things like 'Robo-cop' and 'Ruby linters' to help me learn more about how to write code better.</div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<br /></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<br /></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<br /></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<b>OOP</b></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<b><br /></b></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
This is where I am now. I know of OOP but typically if I have something that I need to solve I will do it functionally. This is the year I am trying to get away from that and really embrace OOP.</div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<br /></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<b> I need to better understand and use:</b></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<b><br /></b></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<b>Classes ( most basic algorithm challenges don't involve using classes and can be solved by writing a few simple methods )</b></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<b>Modules</b></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<b>Inheritance</b></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<b>Clean Code ( I am currently reading the book, and am trying to implement it in real life )</b></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<b>Deeper knowledge of the Ruby language, trying out and playing with new methods just to learn more about Ruby.</b></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<b><br /></b></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<b>In order to be good at Rails ( I'm not ) you need to be good at OOP and not simply be hacking things together until they work :-)</b></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<b><br /></b></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
The above is why I also switched to Ruby Mine IDE instead of Sublime Text 3 for <b>many </b>reasons.</div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<br /></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<br /></div>
<br />
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
This is why I suggest to learn to code and then get a job that involves coding but not at a level like being a full-blown developer. I think you will make your life easier and not become frustrated with coding but instead, will still find it fun, and will enjoy the journey of learning more and more every day.</div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<br /></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
I plan on writing a post on how to easily solve the first 30+ of Free Code Camp algorithm challenges ( people have been emailing me asking ). It's actually quite simple and not too hard. Which brings me to my point, solving algorithm challenges exclusively will not make you a good developer. I think OOP is where things get harder, learning to think in OOP, is a different skill set in itself.</div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<br /></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
I don't think you should sit in your basement for 5 years until you are amazing at OOP and then try to get a job. No, I think you should get an entry level job in QA that involves 50% of the time writing code. Then you will get to grow and learn all the while being paid!</div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
<br /></div>
<div style="font-family: 'Helvetica Neue'; font-size: 14px;">
Keep coding peeps, you <b>can do this!</b></div>
joshuakemphttp://www.blogger.com/profile/15916453538115796012noreply@blogger.comtag:blogger.com,1999:blog-3935074684256715583.post-76860643806427882462016-01-21T22:04:00.000-05:002016-01-21T22:09:12.361-05:004 ways to easily find any element on a web page.<b>Just added another testimonial to my QA coaching page from Justin Bailey of Denver Colorado, check it out :-) </b><br />
<br />
When web scraping, writing automation, or whenever you need to select elements from the DOM, ( here's a good article to understand the DOM <a href="https://css-tricks.com/dom/">https://css-tricks.com/dom/</a> ), you will need to know how to find Html elements easily.<br />
<br />
For people who are new to learning how to select elements from a web page. Most start with simply clicking around and guessing how to target an element. Here are some ways that I go about targeting elements.<br />
<br />
<br />
<b>Option #1</b><br />
<br />
You can use Firefox's Firebug and select an element like this screenshot shows:<br />
<br />
<img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCNgoEi0LqQo4y9tQw3sOsHDXJiSA1_aCx9lr-jHHi_nrtibsHXPw5EXaE5ajcA8So2vAqQyN-ynQqONRqQ7jPW-Oej8G2Z3HZ09Og8Ph7ELlo0_ePwaGIXeezEVerblhJVIwN6JPqgk0/s1600/Screen+Shot+2016-01-21+at+8.15.55+PM.png" /><br />
<br />
<br />
You'll notice that the 'id='main_right' is selected from the HTML panel, but on the web page, you won't see the name of the id highlighted, only the element outlined in blue. This is how I first starting finding and selecting web elements. Using Firebug works, but there are definitely easier ways.<br />
<br />
<br />
<br />
<b>Option #2</b><br />
<b><br /></b> You can use Chrome's Dev Tools and select an element like this screenshot shows:<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHLmZDLBjQu8DFxsX9QEbtypmwVSTD4u5vnESIFPx7h4BzXJkZLXMqSwXtIgFVR4_NEZlwGZhDk6frmYOnBtT5w4rjx46z6svDnITnaOsJGKhtJobVue3ydaqTIRb0zSol8vKOI2zz3EI/s1600/Screen+Shot+2016-01-21+at+8.13.54+PM.png"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHLmZDLBjQu8DFxsX9QEbtypmwVSTD4u5vnESIFPx7h4BzXJkZLXMqSwXtIgFVR4_NEZlwGZhDk6frmYOnBtT5w4rjx46z6svDnITnaOsJGKhtJobVue3ydaqTIRb0zSol8vKOI2zz3EI/s1600/Screen+Shot+2016-01-21+at+8.13.54+PM.png" /></a><br />
<br />
<br />
You'll notice that the 'id='main_right' is selected from the Elements tab, and also on the web page. I love how Chrome Dev Tools automatically converts the 'id' into the correct CSS syntax '#'. If you now take the highlighted id and use jQuery in the Console panel, you can tell if you are targeting only one element. You don't want to accidentally target an element that returns more than 1 instance.<br />
<br />
Here is how I easily check if I am targeting only a single element.<br />
<br />
<b>I took a picture of the highlighted element using the Captured app <a href="http://www.capturedapp.com/">http://www.capturedapp.com/</a>, I then open the Javascript console tab, and use jQuery to target the element. Here's how:</b><br />
<b><br /></b> <b><br /></b> <b><br /></b>
<br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhS_Dl50Q18itHXk1KwuzUBVp-vUE0ciKA7n-X2U_h_fVg2QPyVbXgcJ9mAd0iIWIyzDtYKBIhpgdoCL4mxCB5EXPGeE6Gr0F1IIOjh1_KEDx1ENAhFAtRC5Hn4JVSRdPwc66qe_4oS0vA/s1600/Screen+Shot+2016-01-21+at+8.58.07+PM.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhS_Dl50Q18itHXk1KwuzUBVp-vUE0ciKA7n-X2U_h_fVg2QPyVbXgcJ9mAd0iIWIyzDtYKBIhpgdoCL4mxCB5EXPGeE6Gr0F1IIOjh1_KEDx1ENAhFAtRC5Hn4JVSRdPwc66qe_4oS0vA/s1600/Screen+Shot+2016-01-21+at+8.58.07+PM.png" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<b><br /></b></div>
<div class="separator" style="clear: both; text-align: center;">
<b>Type out the CSS Syntax to select the element, and click enter.</b></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<b><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgiCV4W2ZoWpSqJ9-nfuto8f7ufyHDZZ8Ys7K-3DqQUJNn8YED_eCxe11SMnk0FkitenwSM0riYEiKMUDvZYvnY7iVg028_yUoKdnDgPhy5ThQkyUqKB3hgLKzWTd0zbRccq6W0obgGSwE/s1600/Screen+Shot+2016-01-21+at+8.49.36+PM.png"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgiCV4W2ZoWpSqJ9-nfuto8f7ufyHDZZ8Ys7K-3DqQUJNn8YED_eCxe11SMnk0FkitenwSM0riYEiKMUDvZYvnY7iVg028_yUoKdnDgPhy5ThQkyUqKB3hgLKzWTd0zbRccq6W0obgGSwE/s1600/Screen+Shot+2016-01-21+at+8.49.36+PM.png" /></a></b><br />
<b>After clicking enter, if you only get 1 element returned in the array ( like above ) then you have selected the element correctly and won't have issues with multiple selections. One other way to check if you are targeting an element correctly is to use '.text' to see the text that the element returns like this screenshot shows:</b><br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0s3MTzCbLcsggyPpJdwnNNYsXJ_1bTY1u2r7OqzPZwzFpXUd5nec796bEszCjHdHJrMiGh2QQwrvPP_5FAnFNhafLBpz1sLKqMiaFUjY7DyqKtbJ7ldCX25P12kQftu_YLPCvxyVkzFg/s1600/Screen+Shot+2016-01-21+at+9.04.17+PM.png"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0s3MTzCbLcsggyPpJdwnNNYsXJ_1bTY1u2r7OqzPZwzFpXUd5nec796bEszCjHdHJrMiGh2QQwrvPP_5FAnFNhafLBpz1sLKqMiaFUjY7DyqKtbJ7ldCX25P12kQftu_YLPCvxyVkzFg/s1600/Screen+Shot+2016-01-21+at+9.04.17+PM.png" /></a><br />
<br />
<br />
<b>Option #3</b><br />
<b><br /></b> A very easy method is to use Firefox's addon, FirePath. You simply right-click on any element and select 'Inspect in FirePath'. You will instantly be given the exact, unique XPath for that element.<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLLmZWjwoPR8ftnL6LTWwwknY_2r5ShtewhdXQtopqAYo-MuudxyIWvaKaSa-2rhH2KFMnpLyM2AL9_nq4HK9u60arCa2tXeYsynYt4N14d_bjeVde62DErydL6ZnjgtDYDMdwa8202PI/s1600/Screen+Shot+2016-01-21+at+8.18.01+PM.png"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLLmZWjwoPR8ftnL6LTWwwknY_2r5ShtewhdXQtopqAYo-MuudxyIWvaKaSa-2rhH2KFMnpLyM2AL9_nq4HK9u60arCa2tXeYsynYt4N14d_bjeVde62DErydL6ZnjgtDYDMdwa8202PI/s1600/Screen+Shot+2016-01-21+at+8.18.01+PM.png" /></a><br />
<br />
There are several issues with this:<br />
<br />
<b>#1 </b>XPaths run 2 - 3 times slower than a scoped CSS element.<br />
<b>#2</b> XPaths have to load the entire element each time they are called.<br />
<b>#3</b> XPaths are very hard to read and understand.<br />
<b>#4</b> XPaths have to load the entire element each time they are called.<br />
<b>#5</b> XPaths are <b>very </b>fragile, and break whenever <b>anything </b>on the DOM is changed.<br />
<br />
XPaths are quick and easy to locate but there is a technical cost for choosing them. With that said, sometimes there is really no other option than using a XPath. I only use XPaths as a <b>last resort.</b><br />
<b><br /></b> <b><br /></b> <b>Option #4</b><br />
<b><br /></b> The last option is one of my very favorites when having issues with finding a hard to target element. Selector Gadget <a href="http://selectorgadget.com/">http://selectorgadget.com/</a>. Selector Gadget is the closest thing to Html and CSS magic that I have ever come across. Selector Gadget works by you telling it which element you want it to target. It will then generate the CSS syntax that it thinks you want for the element. Next, you will click on the elements in yellow that you <b>don't </b>want. Selector Gadget will then adjust the CSS it generates until it only selects the 1 element that you are targeting. Here are a couple of examples:<br />
<br />
<b>Click on the Selector Gadget Icon to get started</b><br />
<b><br /></b> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSm0nQRJuGxOVvRbBNBiMVbj81uo2BBC82mdrRcxBQXpu1aQxhO7mekiRCS5Utiurgm27gCLEqT3hB0IQJOKkMVWwp37BN3LC0iNcn2mifsWNiPvigxdgb1iy2ffDYDOEjgBQ0_9uDPWM/s1600/Screen+Shot+2016-01-21+at+8.26.24+PM.png"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSm0nQRJuGxOVvRbBNBiMVbj81uo2BBC82mdrRcxBQXpu1aQxhO7mekiRCS5Utiurgm27gCLEqT3hB0IQJOKkMVWwp37BN3LC0iNcn2mifsWNiPvigxdgb1iy2ffDYDOEjgBQ0_9uDPWM/s1600/Screen+Shot+2016-01-21+at+8.26.24+PM.png" /></a><br />
<b><br /></b> <b>Next highlight and click the element that you want.</b><br />
<b><br /></b> <b><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyYJYldMzqF9OfToYMGvNIGdcPS_cNupRy_vQ1p6-T_9gawo2zog2AAdwV3RmjKCzaYaGADulVL8t3NGNJr4RVQyqlS223yhT7BvcWkzWfMFJn0iutg71sIHsKcbeK2o4zVWymugiOxxw/s1600/Screen+Shot+2016-01-21+at+8.27.44+PM.png"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyYJYldMzqF9OfToYMGvNIGdcPS_cNupRy_vQ1p6-T_9gawo2zog2AAdwV3RmjKCzaYaGADulVL8t3NGNJr4RVQyqlS223yhT7BvcWkzWfMFJn0iutg71sIHsKcbeK2o4zVWymugiOxxw/s1600/Screen+Shot+2016-01-21+at+8.27.44+PM.png" /></a></b><br />
<b><br /></b> <b>Success! You have the CSS generated and can see that only 1 element has been targeted!</b><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWpIEjhYwkP5se8nuuw2CieNGpU1zqnIdQlEx8eqmrnAZpLVWlV1srE84pZIR7hhS1Vlbknj8TWt9G89zIcBUKnINqQXFHjFFtPPQWwCOl-Tj3IcsKy64BgQbdmLrJG6XYhkyhjECXGFY/s1600/Screen+Shot+2016-01-21+at+8.28.36+PM.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWpIEjhYwkP5se8nuuw2CieNGpU1zqnIdQlEx8eqmrnAZpLVWlV1srE84pZIR7hhS1Vlbknj8TWt9G89zIcBUKnINqQXFHjFFtPPQWwCOl-Tj3IcsKy64BgQbdmLrJG6XYhkyhjECXGFY/s1600/Screen+Shot+2016-01-21+at+8.28.36+PM.png" /></a></div>
<br />
<b>Here is another example:</b><br />
<b><br /></b> <b><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0u-Rdn19bg8ZVdmD21DmjnmV4xrHHQvrzBCDTy9NwsbKtUOs0XZ8cmXtKxpD5q7_O69mqARfLo8p23ug02z0YPdkc-2R1DBwvyvyf9Z1gx4Hf0jceSswWNVPF34f2gB8s4RHJFWzQysg/s1600/Screen+Shot+2016-01-21+at+8.29.26+PM.png"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0u-Rdn19bg8ZVdmD21DmjnmV4xrHHQvrzBCDTy9NwsbKtUOs0XZ8cmXtKxpD5q7_O69mqARfLo8p23ug02z0YPdkc-2R1DBwvyvyf9Z1gx4Hf0jceSswWNVPF34f2gB8s4RHJFWzQysg/s1600/Screen+Shot+2016-01-21+at+8.29.26+PM.png" /></a></b><br />
<br />
<b>Select the element you want to target. Notice that the yellow shows all of the other elements that are going to be targeted as well. You need to now 'train' Selector Gadget by clicking on one of the yellow elements, letting it know that you don't want to target it.</b><br />
<b><br /></b> <b><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi22kqGI4SDcLigITG0xPYEq4OxqvDrmUnF37JCqjGyj39WnDM_xPoLGOnPi3gBRqGfJaZu_LMy9KDhRF2NSBQqgxDeNne04DZUwaLCMIxD7uhZOQI6d6HpaJGAke_iAkUEhyNrHo6uyZY/s1600/Screen+Shot+2016-01-21+at+8.30.35+PM.png"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi22kqGI4SDcLigITG0xPYEq4OxqvDrmUnF37JCqjGyj39WnDM_xPoLGOnPi3gBRqGfJaZu_LMy9KDhRF2NSBQqgxDeNne04DZUwaLCMIxD7uhZOQI6d6HpaJGAke_iAkUEhyNrHo6uyZY/s1600/Screen+Shot+2016-01-21+at+8.30.35+PM.png" /></a></b><br />
<br />
<br />
<b>Success! You will see that Selector Gadget has once again successfully figured out the element you are trying to target and generated the correct CSS syntax.</b><br />
<b><br /></b> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjI6js27Ivu2iHP4-842JfcE5jnbSAbLoqIrapvnJGL_Bz-QYTFb6_kYA88Mk1wYR9HmhtQaXF2FQR7EsvTaeWaEu5HzLNvGrTAfkMB-vIGEYGqfDp3-13rS7F7kzzPdG7_Wk6A7B_t9hQ/s1600/Screen+Shot+2016-01-21+at+8.31.21+PM.png" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjI6js27Ivu2iHP4-842JfcE5jnbSAbLoqIrapvnJGL_Bz-QYTFb6_kYA88Mk1wYR9HmhtQaXF2FQR7EsvTaeWaEu5HzLNvGrTAfkMB-vIGEYGqfDp3-13rS7F7kzzPdG7_Wk6A7B_t9hQ/s1600/Screen+Shot+2016-01-21+at+8.31.21+PM.png" /></a><b><br /></b><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
The only issue that I can find with Selector Gadget is that the CSS could be fragile is some cases with using of ':nth' but overall I <b>highly </b>recommend it! Using the above methods, you should be feeling more confident in being able to handle targeting any tricky element situation that you run across. I think Html and CSS 'noobs' should first try to target an element on their own. Then after 5 - 10 minutes if they can't figure it out, use Selector Gadget and learn the correct way to select the element.<br />
<br />
Keep coding peeps, you <b>can do this!</b><br />
<br />
<br />
<br />
<br />
<br />
<br />joshuakemphttp://www.blogger.com/profile/15916453538115796012noreply@blogger.com