RR 316 Learning Rails 5 with Mark Locklear

00:00 01:10:54
Download MP3

RR 316 Learning Rails 5 with Mark Locklear

On today’s episode, we have Learning Rails 5 with Mark Locklear. Mark works for Extension.org. The discussion ranges from the introduction of Learning Rails 5 to the strategies that most successful students have for learning Rails. Stay tuned!

[00:01:30] – Introduction to Mark LocklearMark Locklear works for Extension.org, a USDA-funded or government-funded organization. He serves the Cooperative Extension Service but a lot of people know about 4-H Youth Group. They got a handful of websites that they maintain that are mostly Ruby on Rails-based. He has been with Extension.org for about 3 years. He is also a staff at a community college mostly doing Rails and IT things. He is also an adjunct instructor at the same community college. He was mostly doing quality assurance and testing work but moved into development work in the last 7-8 years.

Questions for Mark Locklear

[00:03:00] – You authored Learning Rails 5? It was an actually an update on an existing book – Learning Rails 3. Mark is an adjunct instructor and used that book. He contacted the developers or the original authors in O’Reilly so he can update the book. He updated a lot of the syntax and rewrote a couple of chapters. He also wrote the authentication chapter from scratch.

**[00:04:15] – What’s unique about your book?**For Mark, there are all kinds of learners out there. There’s nothing necessarily unique about this book. It approaches Rails from a standpoint of having really no development skill at all. The only assumption would be that reader knows some HTML and basic things like for loops and conditional statements.

**[00:05:30] – Has Rails gotten more complicated?**That was one of the challenges with this book. The original version of the book didn’t have any API stuff, any Action Cables, or anything like that. But now, we’re looking on adding chapters on those things. Mark doesn’t think Rails is hard to learn now. It’s been pretty backward compatible over the years. It looks very much like it did 5 or 10 years ago. Dave thinks Rails started to standardize a lot of things and with Convention over Configuration, a lot of it is taking care of it for you. The also added a lot of new features like Active Job (Rails 4), Action Cable (Rails 5), Webpack (Rails 5.1). He think that when someone gets accustomed to it, it’s almost second nature. Thanks to Convention over Configuration and the support for the community. According to DHH, Rails is not for beginners. It is a toolkit for professional web developers to get stuff done. But Brian disagrees that it’s not for beginners. It’s not so much that it’s harder to learn but it’s just a little harder to get started with. There’s just lots of different ways you can do in a Rails application by using RSpec, Cucumber, etc.

**[00:12:20] - What are the core fundamental things to know in order to write Rails apps?**Mark spends a week on testing in his class. He focuses more on the Model View Controller paradigm. He also used RSpec and the basics of CRUD. Those things are transferable across whatever framework that they choose to work in. He also want to hit testing, sessions in cookies and user authentication.

**[00:18:30] - Is there an approach for people to enhance their experience as they learn Rails?**Jerome believes in the “just keep it simple” methodology. When it comes to Rails, just learn Rails. Just focus on CRUD apps. Focus on the entirety of the framework, and not only on Rails, focus more on Ruby. Another suggestion from Brian is to start cracking open the Ruby source code, Rails source code and see how things work under the hood. Look at things and see if you can reproduce them or write your own implementations as you learn.

**[00:24:30] – What are the strategies of your most successful students that you’ve had for learning Rails?**In Mark’s class, they have final projects with very strict requirements, basically going back and incorporating everything that they’ve learned. The app has to have a user authentication. It has to have sessions and cookies. And students who are most successful want to solve some problems and have the passion. One of the things that Brian have always seen that separates people who are high performers from the rest is that they’re doing a lot of practice. Spend a lot of time practicing and building apps. Dave encourages the listeners to work on some personal projects that they are passionate about. Deal with someone else and get some experience with some peer programming. Try to see what it’s like working with other developers on the same application, you’ll find that your codes much cleaner because you have to take into account multiple users working around the same code set. Jerome suggests to find a mentor, someone who’s willing to spend time to help with your programs. The students who are talking to their mentors every week usually come to be the strongest. And mentoring is a rewarding two-way street.

**[00:40:05] – Are there any other aspects of learning or teaching Rails that we should dive into?**Mark says you should be uncomfortable every once in a while in implementing new technology. It puts you in the same mindset as your students becomes sometimes it’s becoming incredible overwhelming. And when teaching, Brian does not start with complex examples.  He starts with simple ones. A faculty mentor has to observe Brian in his teaching. The mentor will say, “Just a reminder. You are the guide on the side, not the sage of the stage. You’re not there to tell them everything. You’re not there to make everyone think that you’re the coolest person up there. It’s your job to guide someone to the solution.”

[00:49:25] – If I’m a Rails 3 developer, how do I learn Rails 5? Mark thinks that the approach is probably the same if you’re doing Rails 3 to Rails 4. The questions you will start asking yourself is, “Okay, what areas do you want to dig deeper? Do I have to use Active Job or something like that? What are my mailers? Are there additions to the framework?” Whenever Rails releases a new version, Dave reads the blog which highlights the new features that were added in. Pinpoint those features, do a little bit of independent research and think how you could incorporate them into your application. Use them as guiding tools to upgrade your older Rails application to a more current version.

**[00:52:15] – Two Writing Assignments for New Programmers**Mark wrote a Medium article entitled “Two Writing Assignments for New Programmers.” In his class, they have two writing assignments. One of it is on diversity and technology. They also use Moodle as the learning management system where they can post questions. He got some push back from students but his explanation was that, part of being a developer is to be an effective communicator. Brian agreed and said, “Your job as a software developer is 20% coding, 80% dealing with people, their problems and their requests.” You have emails to read. You have emails to write. Brian always asks, “What are the most important skills you want our students to have?” The top 3 are always soft skills like communication, work ethics, etc. Mark adds that if you can’t do writing, if you can’t show up to work on time and communicate with your colleagues, then, none of your technical skills matter. However, if you can’t past the technical hurdle, you’ll never get a chance to use your soft skills. Dave also adds that if he can’t get out of these people what they’re envisioning, then, they’re going nto develop the wrong things.


Dave Kimura


RR 316 Learning Rails 5 with Mark Locklear

CHARLES: I had a boss that was in love with Suse Linux and if I ever have to use that again, I think I might slit my wrists. JEROME: Wow, okay.[Music]__[Dear Ruby developer, are you sick and tired on working on crappy old legacy code bases? There’s got to be a better way. If you want to get a better job, here’s what you can do. Find a technology that’s really in demand. Build a side project using that technology. And then, use that side project and experience to get your next better job. I’ve done this myself several times. That definitely works! What I think that’s a really good technology right now is Angular. Angular is really in demand right now. That’s not going away any time soon. I have a free guide to getting started with Angular and Rails at angularonrails.com/rr. Good luck and enjoy this episode of Ruby Rogues.] CHARLES: Hey, everybody and welcome to the Ruby Rogues podcast. This week on our panel we have Jerome Hardaway. JEROME: Hey, everybody. CHARLES: Dave Kamara. DAVE: Hello. CHARLES: Brian Hogan. BRIAN: Hi, all. CHARLES: I’m Charles Max Wood from Devchat.tv. Quick shout-out for our free Ruby Summit. Go check it out at rubydevsummit.com. We also have a special guest this week and that’s Mark Locklear. Mark, do you want to say hi? MARK: Hey, folks. Glad to be here, enjoying you from Ashville, North Carolina. CHARLES: Now, I don’t know if we’ve had you on the show before. Do you want to give us a brief introduction? Let us know who you are, what you do. MARK: Sure. Again, my name is Mark. I currently work for Extension.org. We’re a sort of a USDA-funded, government-funded organization. We serve the Cooperative Extension Service. A lot of people don’t know what the Cooperative Extension System is but there’s usually a Cooperative Extension branch in every county in every state. For me, a lot of people are familiar with 4-H. If you know about your 4-H Youth Group, that’s where a lot of people know the Cooperative Extension Service from. So we’re sort of a national presence. Cooperative Extension Service is very fragment. And as I said, there’s generally Extension branches in each county in each state. And so we’re sort of a national presence for the Cooperative Extension Service. We’ve got a handful of websites that we maintain that are mostly Ruby on Rails-based. Although, we’ve got some Wordpress and Drupal sprinkled in. I’ve been with Extension.org for about 3 years. Part of that, I was staff at a community college mostly doing Rails stuff and just sort of general IT things. I’m also an adjunct instructor and I’m still an adjunct instructor at the same community college. Sort of the team I’m part of, I’m mostly doing quality assurance and testing work. And just sort of moved into development work in the last 7-8 years. CHARLES: Gotcha. And you authored a book - Learning Rails 5? MARK: Yeah. It was an actually an update on an existing book. The previous version of the book was Learning Rails 3. And as I mentioned, I’m an adjunct instructor so I used that book - Learning Rails 3 to teach a regular 4-credit class at the community college that I was at. So this was maybe 4 years ago or so. But you know, Rails is at Rails 4 at the time, and I was teaching Rails 3. After about 2 semesters of teaching the book, I feel like I could update this book to Rails 5. This was sort of in the fall of 2003, 2004. In that time, Rails 5 is about to come out that next spring. So I contacted the developers or the original authors in O’Reilly and just said, “Hey, I’d like to update the book.” A good part of the contents state the same book. But of course, I just updated a lot of the syntax and thing, and then, rewrote a couple of the chapters. The authentication chapter, I wrote that from scratch. CHARLES: So, I mean, there are Rails tutorials… I mean, there are a bunch of books out there on Rails. What’s unique about your book? Is your book different or is there different content? MARK: Oh sure, I don’t think my approach is that much different. You know, one of the things I think about when teaching is there are all kinds of learners out there, all kinds of different ways. Some are visual. Some are more kinesthetic learners. For a general standpoint, I think there’s nothing necessarily unique about this book. It’s just that it’s a sort of a different way of approaching it. The first couple of chapters, folks are sort of just hand-coding rather than using scaffolding, or reusing generators for controllers and models. Specifically, it starts out that way. And then after, I think, chapter 4, 5, we get into scaffolding. I think it’s just another option for students. It approaches Rails from a standpoint of having really no development skill at all. I guess the only assumption would be that you know some HTML and just some basic things like for loops and conditional statements. Other than that, there’s no big expectation of adding a lot of technical knowledge upfront. CHARLES: Gotcha. So one of the things that I periodically hear people complain about is that Rails has gotten more complicated. Do you feel like it has? I’d like to hear from the rest of the panel on this too because we all do Rails to some degree. It has gotten more complicated so does that mean it’s harder to learn? Or you know, did you just approach it the same way and then talk about all the stuff they’ve added? MARK: Yeah, I’ll start. That was one of the challenges with this book. The original version of the book, Learning Rails 3, of course, didn’t have any API stuff. It didn’t have any Action Cable or anything like that. That was one of the decisions upfront. Then, I decided to not add those things. Now, we’re looking on working with one of the co-authors. Now, we’re looking on adding chapters on those things. To your original question that if Rails is hard to learn now, I don’t think so. Because, you know, it’s been pretty backward compatible over the years. You know, the sort of original framework… and I used that word ‘loosely’ but it’s sort of a way to do things from a command line standpoint. And those things are all still there on the basic structure of the Rails app. It looks very much like it did 5 or 10 years ago. So, in my opinion, I’d say no. I don’t think it’s more difficult to learn. DAVE: And I think they started to standardize a lot of things. You know, like, if you want to do this, here is your approach. I don’t think… before, it was very open and subjective to however you wanted to complete a task. And now, with a lot more of their Convention over Configuration, I think a lot of it is taking care of it for you. But with that, they’ve also added a lot of new features. Now, in Rails 4, you have the introduction of Active Job, which, you know, is extra piece that’s just been added in and baked in to the Rails 4. However, if that was not there, then, you would have your own implementation and stuff. I think, even though it has gotten more complicated over the past few years… and then, with Rails 5, we have Action Cable, and then, Rails 5.1 was added with the Webpack. And you now have Rails Secret and some other stuff. But I think, when someone gets accustomed to it, it’s almost second nature. And there’s a lot of less guesswork. The tutorials out there were all kind of mix and match, you know, kind of what you’re trying to do because now we have more of the standardization. So even though it could be a little more complicated than it was in the Rails 3 days, I think with the Convention over Configuration, as well as, the support out there for the community, it’s in a much better direction. BRIAN: I agree with you, Dave. This is going to mark my 9th year of teaching Rails in some capacity. And it has gotten harder simply because web development has gotten more complex. If you look at the statements from DHH, he said that Rails is not for beginners. Rails is a toolkit for professional web developers to get stuff done. And so, that’s what they’re baking in and all of those things like jobs. And they’re baking in the web socket stuff. And they’re baking in the JavaScript stuff now because you want to meet the needs of a modern web developer. I disagree that it’s not for beginners. I think it’s a great way for people to learn how to build a database application. But I’ve seen one of the things that you get when you teach this in a setting where you can get feedback from people in real-time is that you can track out of work… overtime. And you can start seeing one of the places that people have pain points with. There are certain things that thankfully have stayed exactly the same. There are other things that are just a little more confusing than it used to be. It’s not so much that it’s harder to learn. It’s just a little harder to get started with. When they brought in the Asset Pipeline, all of a sudden you have additional dependencies you need to some environments in some machines. You need to get Node install, as well as Ruby install. And if you’re already a developer doing those things, you don’t notice that. But take a new student with a completely blank Windows machine, and say, let’s make a Rails application. Two hours later, once you finish installing everything, you can get started. Those are the parts that are kind of weird. It has gotten a little bit more difficult on that end but the fact is that… what is Rails, right? If you go through one of these books, and you stay completely on the pathway, like using your fixtures and using all of the built-in components with Rails, the question I’ve always had as a teacher is, “Did I prepare myself or did I prepare my students to get their first Rails job?” when all of a sudden, they run-smack them into a code base full of factored… in RSpec and a bunch of other things that are not off the Rails core. That’s the thing that makes Rails, I think, hard to learn. When a beginner comes in and says, “Oh, I’m doing this thing.” And someone will say, “Oh, you should use RSpec.” And then, they’ll say, “Oh, what’s Rspec?” and he’ll look into that. “Oh, you should use Cucumber.” “What’s that?” and then he’ll look into that. And all of a sudden, there’s these additional things that I’ve seen some starter projects with 20, 30 different jams that are automatically configured to run, which is great for productivity but one of the things that’s happened in the last 10 years in Rails is that it’s gotten a little different. There’s lots of different ways you can do in a Rails application. MARK: I wonder, if it’s sort of a little difficult for students but it’s more difficult for an instructor, you know, approaching from an instructor standpoint. The options have gotten so… there are so many options. And the decision, just like you said, “what my goal for these students is my goal to get them a Rails job”, which is sort of a tall task, at least, in a college setting, for a typical 16-week class where we’re meeting once or twice a week. Is that the goal? The goal just to, “Hey, I want to expose you to web development and software development,” which is sort of how I approach things. I like to say, and I teach a job of programming class, which is sort of an intro Java class. I’m not here to teach you Java as much as I teach you software development. And all, by the way, we’re going to use Java to do that. Lots of times, I approach Rails from that way. I’m here to teach you web development and we’re going to use Rails to do it but my goal is to teach sort of concepts and ideas. They’re going to be broad enough and apply to whatever framework or whatever language you choose to work in. BRIAN: Exactly. That’s an awesome approach. CHARLES: So what are the core fundamental things that the people need to know in order to write Rails apps? Because it sounds like, you know, you need models and controllers, all those kinds of things. But yeah, a lot of people really do get down into the weeds. Well, you really do need to know how to write tests. You do need to know how to set up a job queue. You do need to know how to write CoffeeSripts so that your JavaScript does the right thing in the right place and the right time. What are the things that you feel like every Rails developer really does need to know? Or is it just, “Okay, understand the basic structure and then move on?” MARK: I mean, I sort of approach it from a standpoint. I’m just looking for the type of contents of the book now. Again, we have Azure structure around a 16-week course. We span in, just for example, we spend a week on testing and I just used the tip… you know, I used RSpec and those things, but we don’t dive real deep into that. I try and focus more on the Model View Controller paradigm so they understand that. And then, just the basics of CRUD. I mean, I really focus on CRUD… that they sort of understand those things. In my mind, those things are things that are transferable across whatever framework that they choose to work in. You know, I want to hit testing. I want to hit sessions in cookies. I want to hit user authentication. Those are all things we’re going to touch. In my mind, they need to have some understanding of what those concepts are in a general way. But, you know, again, I think whether it’s a 10-week boot camp or a 16-week college course, you have to make some decision upfront about how deep you’re going to dive in, and how deep you’re going to dig into certain concepts. To me, there are a lot of the basic stuff. Again, the things that are around CRUD, and you know, Model View Controller things are what I focus on more. And then, I sort of try to touch these other concepts that are they are going to run into regardless of what framework they get into. But we’re probably not going to dig really deep into those things. BRIAN: Right, I assume you kind of have to pick and choose how deep you’re going to go in one area because if you throw too many things, your students, they’re just going to be overwhelmed and then, they’re going to kind of do it by route as opposed to critical thinking, right? MARK: Yeah, right. I mean, you can’t really… that’s the danger in this idea of overwhelming students. And again, I think the boot camp model as opposed to a 16-week course, I think, you think about in a college setting, these kids have other classes. They’re maybe taking a Math class. It could be some higher level Math. They could be taking other programming classes at the same time. So in that setting, again, my focus is more that I want to introduce them to the framework and introduce them to the concepts in a general way. Some of these students may not even be Computer Science. At the community college, we call our programmers, web technologist. They may not even be Web Technology students. In that setting, it’s probably more of a broad stroke as opposed to boot camp setting. Again, the sales pitch for many boot camp is that, “Hey, we’re going to get you a job in 10 or 16 weeks.” Though, I think, it can be a different approach. And let me say about these students, the commitment that they make… the commitment in a boot camp, generally, is going to be much more than what it is in maybe a college setting for students. Certainly, some college students will dive into it. They may spend 10, 20, 30 hours a week in Rails or whatever software you’re learning. But very well, maybe, you know, only 5 to 10 hours per week, whereas in a boot camp, they’re doing their 8 hours maybe on-site, and maybe another 2 or 3 hours once they go home. Those are 2 very different ways to approach it. BRIAN: To back that up, the day that I had the online classes and the blended learning classes that I taught, I would say 80% of the students didn’t begin the week’s home work until 5-6 hours before the due date anyways. Even though they had the time on a calendar, they didn’t necessarily have the entire week to work on the content for my course. MARK: And I think Jerome can speak to this too. Visual Code is very much more on the boot camp side and a lot of these folks are maybe recently separated from the… military said this is what their folks are all like. 24/7 they’re learning. They’re into software development and coding with the goal of, in 2 or 3 months, they want to be interviewing for a job. JEROME: And yeah, that is some old practice that you have to do a deeper dive not just, like, not just concepts. You also have to focus on what the employers or agent managers are looking for, as well… He shared with our… last week. We focus on having to do so much work and so much projects, and things of that nature. It minimizes their chances of having a white board. Your goal should be to do as much work as you can on the front-end, so avoid white boarding, as much as possible. That’s a very… that has baked in to the correct one but that’s also, you know, you have to know these types of things. You have to know a lot about testing. You have to know a lot about this subject or about how architecture and data structures in that nature, as opposed to just, you know, brought concepts and how algorithms work. So it depends on the approach. What is the purpose of the education? It’s that thing that everybody disagrees on, right? CHARLES: One thing I think that’s interesting in this conversation is that we came in to talk about learning Rails and then, we’ve been talking about teaching Rails. Is there an approach that students should be taking? Or people out there who are maybe doing self-teaching, or even if they’re working at a boot camp, things that they can do to enhance their experience as they learn Rails? BRIAN: I’d love to hear from everybody else. I have my own opinions on this but… JEROME: I believe in the “just keep it simple” methodology. When it comes to Rails, just learn Rails. Part of what I’ve seen at various boot camps, we actually talk about our own problems when we first started. Everybody wants the jobs on the hottest technologies, most popular things. For instance, when you’re talking about CoffeeScript and TypeScript, all those things, and all the front-end technologies when it comes to Rails… but problem is, when you’re jumping or jumped to more advanced things like going to as far as AWS, a lot of this other stuff, you’re not really focusing on Rails. I think one of my biggest things to say is just keep it simple. Just focus on Rails. Just focus on CRUD apps. Focus on the entirety of the framework. And not only focusing on Rails, focus more on Ruby. You’ll be amazed how many people that are Rails developers but they never done things like Sinatra or you know, build a Ruby gem. These are things that could actually make you a better Rails developer by focusing on the core language, as opposed to framework. I think that is one thing that a lot of education resources need to get away from. Most people when they’re on Rails or Ruby or conjunction with Rails, I think there should be more about just letting Ruby stand alone and then, focusing on Rails. I guess a great case study is I think we have Honeybadger – Honeybadger.io. And one of the things that actually help one of their clients was that they were using a lot of heavy Ruby apps. They were trying to upgrade maybe from Rails 3 to Rails 5. And that actually make the upgrading of the Rails app really easy because CodePen.io was built so closely on Ruby versus being really dependent on Rails, or what Rails does for the developer. So that’s one thing I think that people should… especially, should focus in much more deeper dive on the power of Ruby and what it can do versus just Rails. What it can do for the developers is it can make better Rails developers. BRIAN: You’re so dead on with that. I’m just sitting here shaking my head over and over again saying, “Yes, this is exactly it.” I find it so important that working with Rails, when you’re teaching it and when you’re learning it, the student feels so motivated because they’re building something. They’re making this for a progress. It’s a little more fun than it is to just do some simple Ruby stuff but there are opportunities from… if you’re a person presenting the material, there are opportunities to kind of drop down into the Ruby, and kind of explain how it works. Conversely, when you’re at a certain level as a learner, start cracking open the Ruby source code, looking at things and start understanding how things work under the hood, look under the Rails source code and see exactly how you look at the helpers, look how the string is being built, look how the human eyes stuff works, work how the number occur and stuff works, look at those things and see if you can reproduce them and write your own implementations as you learn. That’s going to be the wall. That’s where I see a lot of people hit the wall. They can certainly scaffold some stuff up but clearly they follow the book or a course. But when they ask them to do something that’s a bit of a derivative, they hit a wall. It becomes apparent that there’s not enough… that much there. Yes, yes, learn the Rubies and the Rails. DAVE: To build on that, Brian, you know, I feel the same way. And this is coming from someone who learn Rails and then went back and learn Ruby. All the magic that happens with Rails… I think it’s really important to understand and almost demystified. This isn’t magic. This is just, you know, helpers that are helping you get to a result quicker. But if you’ll understand the core concepts, whether it is scaffolding, or the database migrations, or even the object relational mapper, active record, what’s really going on behind the hood, then, anything deviates from your standard practice or what a book might show you how to do in general sense, you’re not going to be able to accommodate. With something like device, not understanding what devices doing in the background with the authentication, if you need to deviate from what device has as a standard and overwrite some of the control reactions, then, you’re going to be in a complete lost. And you might even try to roll your own authentication. Or you might try to look at a different gem when that’s not really the solution. It’s to understand the core concept around authentication. And then, to say devices implementation, then, say what you need to do to overwrite it while still maintaining the security that the device provides. BRIAN: I want to hear from Mark very specific answer. Mark, when you taught, what are the strategies of your most successful students that you’ve had? What are their strategies for learning Rails? MARK: One of the things that I do with my class… and I’ll be curious to hear if you do this with your class, as well. They have a final project that they do. We go back over each requirements. I have very strict requirements for that final project, basically, going back and incorporating everything you’ve learned. This app has to have user authentication. This app has to have sessions and cookies. And you’re actually using cookies to do stuff but those students who I can tell really throw themselves in, I give them a general framework. Just a little plug from Ashville, North Carolina, Ashville is beer city, USA. So they build a brewery app for their final app and they had a list of beers and then they can rate the beers based on the alcohol value, the amount of hops. It’s got all these various things. But get them the option to, “Hey, you can come up with your own map as long as you have all these requirements.” Usually, those students who choose to do their own map, which maybe 20% of the students, students who choose to do their own map, are usually the ones that are most successful. Partially just because, I guess by the end of the class, they’re more comfortable with the frameworks so they feel more comfortable sort of stepping outside the requirements that I gave them. But those students, you can tell, are motivated that they want to solve some problems. Maybe they want to solve or they came to the class to begin with, thinking, “I’d like to write an app that would do this thing.” Certainly, those students who incorporate something like that, who were actually building a Rails app is going to do real stuff, something that maybe their passion… about are the most successful. BRIAN: Right on. That’s in line with some of the things that I’ve seen too. I tend to suggest that when it comes to anything, I tend to suggest that the way to really improve your skills is to really grasp these concepts just to give yourself a lot of time to practice. Spend a lot of time building. If you build an app, build it again, even if it’s the same thing, build it again. And then, build another thing. And then, build something similar to that. Okay, now you made a to-do list. Now, make an application that lets you capture notes like a very simple Evernote clone without tagging or something, right? Try different things. Re-implement URL shorteners. Keep practicing, re-implementing existing projects out there. In Rails, simply because you don’t have to think about the problem demand, you don’t have to understand the problem. If you already understand, you can just focus on practicing the language and the coding. One of the things that I have always seen to separate the people who are the high performers in an education setting from the rest is that they’re doing a lot of practice. Sometimes they can put that time to practicing. They are privileged enough to be able to put that time to practice time. But it still becomes a vital part towards the end of my time teaching. I tried very hard to incorporate as much practice time in the interface time as I could because that was actually more important than lecture and presentations – giving them that time. MARK: The sort of class time that I have is an hour less of lecture. Then, we always have an exercise part, which sort of, “Okay, we’re going to build a task app.” It’s going to have a date. It’s going to have a description. It’s going to have a title and we want to sort it by… you know, we want to capitalize the first letter of the word of each word in the title and give them a handful of things and so, “Okay, go do it.” And then, I sort of hover around the room and help folks out. I may give them 30 or 45 minutes to do that. And then, I do a lot of pairing too. I’ll also incorporate maybe less 15 to 20 minutes if somebody’s got it nailed. Then, they’re done. Alright, fine. Somebody who’s still not done, they go pair up with that person and work with them, sort of walkthrough their various steps. CHARLES: Well, that’s okay too because you’re not just making them do the exercise but you’re there to kind of help them get along, get as much of it as possible with that time. MARK: And then, if you could let me read, this is the last paragraph in the foreword of the book. And I think this speaks to a little something that Jerome was saying. Again, this is the final paragraph in the foreword of Learning Rails 5. It says, “Finally, I want to encourage you to learn Rails and assure you that you will benefit from this book even if you do not become a Rails developer. I can say this with confidence because Rails has become the gold standard for MVC architecture in web development. In addition to the general MVC structure, Rails also has great workflow around migrations, devops, tasks, risks, Git, and community support. For all of these reasons, even if you do not go on to do great things in Rails, you will encounter some, if not all, of these challenges in whatever web development platform you choose to work in. By exposing yourself to Rails and its solutions to these challenges, you’ll learn best practice that you can apply to other frameworks and workflows.”[This episode is sponsored by compose.io. Compose is a fully managed database hosting with extra security scaling and performance. Posted on dedicated SSD servers, you can pick from highly available databases, MongoDB, Elasticsearch, Redis. Compose Enterprise comes with easy scaling, which you can add additional notes any time. It has auto-scaled resources like storage, memory and IOPS, RESTful API’s, central console to manage all your deployments, and premium support with guaranteed response time with priority ticketing. With Compose Enterprise, you can free up your time to focus on building your app instead of managing your database. Check them out at enterprise.compose.com. And if you try Compose, you get a free special edition t-shirt. Hurry, quantities are limited! That’s enterprise.compose.com.] JEROME: Queue applause now. DAVE: Another thing that I encourage the listeners to do, if you’re kind of that developer and you are just working on some personal projects, find a project that maybe you are passionate about or maybe care much about. Deal with someone else. And get some experience with some peer programming. Deal within… and really try to see what it’s like working with other developers on the same application because the way you structure your application to sustain multiple developers will change from just being a solo developer. And it’s definitely something that is good experience to have. I think you’ll find that your codes ending up much cleaner because you are having to take into account multiple users working around the same code set. MARK: To ask some question about Git, I’m curious what other folks like you Brian, if you include that… I introduce Git relatively early on, maybe the 3rd or 4th week. And then, one point, I was going to have them… they’re going to submit all their assignments via Git but there were so many issues even with simple push/pull request and things like that. I do expose them to it but I don’t include them in the class as much as I should. BRIAN: We included Git at the end of our first semester program courses. Because we’ve tried probably many different ways, we’ve had a lot of confusion. And then, a lot of people just doing what they were told to follow rather than thinking. Because if it, “Well, this is sort of Rails, right? This is part of JavaScript.” I might have to use this Git thing but I don’t know what it’s for. That happens when you’re new and there’s a lot of new material being thrown at you. And so, we discovered a sweet spot is really to give them a bunch of time to feel how painful work is without it. Because then, they can rely on their prior knowledge. They can rely on those learning pathways that already exist and say, “Oh yeah, if I use this tool, I’m going to save myself a lot of pain from having to worry about our previous revisions or tracking my changes, or even keep track of what I did at the end of the day.”  Yeah, we introduce that point and then, we had a class that was their last semester course which is sort of a team project class. And they’re going to use it consistently throughout that course to track their changes, to pull requests and things like that. MARK: I use the same strategy in Learning Rails 5. I’m just looking through scaffolding is introduced in chapter 5 but it says you’re sort of manually building a lot of the bits and pieces. And then, scaffolding sort of wraps all that up for the similar year… sort of experiencing the pain of doing things manually, and then, sort of introducing an easier way. JEROME: My teaching mentor a long time ago suggests… she was sure that wasn’t why they still do it but she suggests that it’s a good learning approach. It’s sort of like making you go through all that hassle of long division on paper and finally giving you a calculator to do it for you. CHARLES: Sure. BRIAN: You appreciate the calculator a lot more. JEROME: In the boot camp or the learning community, Git is the source thing or the second... You’re supposed to know it before you get into class or you’re going to learn it within the first 2 weeks of class or sessions. That was a lot of boot camps… some of the things you said about learning, I think one thing that a lone developer needs to know is to find a mentor, find someone that’s willing to spend that hour just to help with your programs, see what types of problems you have. Mark actually handles a lot of the mentorships. If someone applies to be a mentor, I usually interview them for Mark and then Mark sends the okay, or basically the thumbs up or the thumbs down. We see in our student that the people who are talking to their mentors every week, they usually come out to be the strongest. The last two developers, when I look at their metrics for having the task that was setup by their mentor, their mentor was incredibly busy. They’ve all had the same mentor. He’s basically putting 4-6 hours in the weekend for mentoring. And you know, they really came out really strong, so strong that people... their portfolios when they were done. So I think that’s something that everybody, especially if you’re brand new, find somebody that’s already made all the screw ups and all the mess ups that you haven’t done yet. The difference between wisdom and intelligence is that if you’re smart, you’ll find somebody who already has the experience. So how to screw this up before you figure out what not to do? BRIAN: It’s important. It’s really important because those kinds of relationship can lasts. They can last a lifetime. I mean, a mentor isn’t just someone who tells you what to do and throws knowledge at you. They’re a person that as a result of them mentoring you, they’re growing too. They’re learning. They’re looking at different ways to explain problems, things that they just kind of remember or know how to do. Now, they have to internalize it. They have to break it down. They have to think about it and they have to make it clear. And sometimes, speaking from the standpoint, I am a mentor who does mentor people. There’s been a lot of times that I’ve realized that what I thought was right was actually not an optimal approach, or the wrong approach, or just flat out dangerous for me to grow in a way. If you’re ought to looking and you’re thinking, “Oh, that person is going to be too busy. They wouldn’t want to mentor me.” It doesn’t really hurt to ask because both of you gets something out of that relationship. MARK: The other piece I want to mention too is that it’s not just the technical piece. It’s the sort of professional career mentoring too, right? There’s the technical piece of pair programming, and coding and doing that. But especially with vets who code, a lot of these folks are making a transition from a military background into this world. I mean, it’s just a bit different. The networking piece is different with the people you meet. The interview prep and all these things can be very different than what the military is. Mentoring piece is not just the technical part but also the professional and the personal development part too. JEROME: Also, just to take you back, I believe Brian said it best. Mentoring is a rewarding two-way street. From your local user group or meet up group, whatever, if you are in a mentoring realm, please go out there and mentor someone who has no idea what they’re doing. Especially in the Ruby community, we're pretty much getting this… we’re going to Slack which people feel like is mature and is basically the good old boys club. If you don’t know how to use it now, then, you’re never going to be able to... you’re going to have a steeper entry into being a Rails developer. You’re going to see it now and look someone the way the jobs are being written for Rails developers. Whether they’re asking for a sort of like 5… they’re looking for entry-level developers with a year-worth of production experience. So if you haven’t mentored, go out there mentor. Find somebody who wants to learn or struggling to learn. Whoever at the local meet up who has the biggest deer and headlights look on them… that’s the person you need to go and mentor. That person, you know, they’re usually... they want to learn and you want to learn, you’re intimidated. They’re probably going to become better developers. They are the people that you tend to gravitate towards. They feel like they don’t belong and they’re just so grateful for someone taking that opportunity at that chance. When you tell them to do something, they’re going to do it versus somebody who… oh, you know the cool kid. Oh, you know, we like this guy and if he doesn’t do what we tell him to do, he’s still a cool guy. Especially the whole diversity and tech inclusion movement where they try to finish as a community... industry across the country. It’s usually women, minorities who are going to these local meet ups and they’re feeling out of place. That’s something that you guys can get more… better developers in the community. You can alleviate that problem. That’s I guess. That’s your home work for the week if you’re hearing this podcast. If you see someone in the local meet up that definitely looks lost, go out there and say, “Hey.” CHARLES: I just also wanted to point out that if the qualifications for the mentor is having experience screwing some stuff up, then I am qualified because I’m super good at screwing stuff up. We’ve been talking for close to an hour. I’m kind of curious if there are any other aspects of learning Rails or teaching Rails that we should dive into, you know, just things that people don’t think about when their thinking, “Oh, I’m going to jump into mentoring somebody.” Or “Oh, I’m going to learn this new framework.” JEROME: Learning JavaScript or CoffeeScript, I think that’s one thing. We have this writing joke. Like I’ve said multiple times, many of these people aren’t used to Ruby as the same as JavaScript. Especially, with I understand about Rails 5.1 that the hate between JavaScript and Ruby is quickly eroding. They see it, you know, the people are creating a Rails framework where I’ve to use… and some other things are coming out of it but at JavaScript framework and JavaScript community… webpack, Node, React and Angular. So it’s best that, you know, go ahead and bite a bullet and learn JavaScript, learn CoffeScript. Learn these technologies so that way you can help better Rails developers. Because we’re not seeing in the market, we’re not seeing people who are just looking for pure Ruby or pure Rails developers. They’re looking for Rails developers that have experience in Electra or Rails developers who have experience in Angular, with React. That’s what the market is moving towards. You have to learn how to use these languages, these frameworks and these libraries. You might as well just go ahead, and you know, learn JavaScript, as well. MARK: Yeah, I’ve been focusing on React that’s been the lightest thing I’ve been trying to spend more time with. Not just outside just the general sort of making yourself more marketable. Back to the sort of teaching aspect, I think as teachers, if it’s been 6 months or a year and you haven’t been in an uncomfortable place with regard to learning those, I think, you know, whether you’re a teacher or a mentor, you’re probably not doing your job. You should be in an uncomfortable place. I’ve been in that in for the last 6 weeks or so. I’ve been going through various React, specifically, React in Rails tutorials. There’s sort of a standard way, you know, 2 standard ways I’ve seen that folks are doing. So I’ve been in that uncomfortable place. I want to put this thing here on the page. If it was purely Rails, I know how to do it but I don’t know how to do it inside React. I think that’s an important thing. BRIAN: I love that sentiment of making sure you’re uncomfortable every once in a while in implementing new technology. I’ve been getting the same thing as your feeling but that was React with Elm instead. It’s sort of the same thing because it’s making me do a lot of… to make me really think of many years of experience with programming. I feel like I’m starting all over again. It’s nice because it’s from a teaching standpoint and mentoring standpoint, puts you in the same mindset as your students. This is one of the most difficult things that people who have good hearts and they really want to teach. They really want to give back. They want to mentor. One of the biggest things that they make is that they… when they come into it, they think that the way would write code at your day job is the way that everyone needs to learn how to do it. And by what I mean by that is they’ll say, “You’re new to Rails. Awesome! Here’s all the cool stuff you should look at.” And then, it becomes incredibly overwhelming. Sometimes when you’re teaching something, you’re not going to start with complex examples. You're going to start with very simple examples. And I can’t count the number of times where whether it’s been with a book or in a presentation that I’ve given, somebody has to point out, “What would you ever do it that way? That’s a horrible way to do it.” It’s not a horrible way to do it. It’s not how I would do it if I was writing the code for real but you’re not only seeing part of the process. You’re not seeing the full process. We got to be more complicated because they’re simply not ready to do full on test first-driven development with integration tests and functional tests. They’re just not at that point yet. MARK: I think a lot of just the way you’re approach it as a teacher standpoint, saying, “Listen, there are thousand ways to do this. I’m going to show you one.” It is the way that I do it but just note that there are various alternative ways to do it. JEROME: Has to come into play of teaching from the position of a learner versus teaching from the position of a worker. One of the things, for instance, when we’re go back to I guess a spot in JavaScript, the book that gets recommended the most is Eloquent JavaScript. Well, if you’re a person who has ups and downs experience in JavaScript, that book absolutely is terrifying. So the book I started recommending was JavaScript for Kids and people are like, “You’re joking, right?” But also, the guy who wrote this book was a developer at Twitter, sort of front-end. He knows what he’s doing. It’s the same thing with Ruby. A lot of people… the first book they recommend for Ruby is Programming in Ruby, however, for me, I recommend Shaw’s Learning It the Hard Way and Hit First Ruby. That is the third book I recommend after people asking for resources. And it’s because those books, you know, a lot of people know Zed. Zed is an army veteran. Basically, it’s like to say. It’s army proof. It’s written really simple, almost like… You can go through that book and you know, have a really good understanding with Ruby from the core concepts of the language. That’s something that… I’d like to see more authors and more creators come from that perspective of like you’re dealing with somebody who has your experience and wants to learn versus trying to show how smart they are when they’re writing their book. Especially, when I started programming, that’s one thing that kept me from liking certain authors. “You know what, this book was more written for this person’s ego than to actually teach me something.” With authors that are… Brian Hall, Ed Shaw, Carlson, Sandi Metz, they all do really good job in being able to teach, write books and create materials from the perspective of someone who has no clue what they’re doing. Where there’s this other author who writes a book and it’s more… just like I said, it feels more focused on letting me know that you’re really good at this. I think that’s one thing that as teachers, we all… all the time, I’m forgetting something that I decided that was common knowledge because I’ve used it so much. But then, I have someone ask me, “What does that do?” So, “Oh yeah, do you know that?” I shouldn’t say that because as a teacher, you have to assume that the learner doesn’t know anything. You have the job the fill that. You have to make sure that you don’t spill a drop and forget something that’s essential. I think that’s something that as a… that’s the hardest part of teaching and mentoring. It’s coming from the position of the learner. What does the new learner not know? BRIAN: When I first set that foot in the classroom full time, I have to be observed by a faculty mentor and some other folks at the professional development. The guy who ran professional development, my first year teaching is to have him saying to put a note cards. He would say it during the… He always point this out whenever we get off track. He’ll say, “Just a reminder. You are the guide on the side, not the sage on the stage. You’re not there to tell them everything. And you’re not there to make everyone think that you’re the coolest person up there. It’s your job to guide someone to the solution.” That always stuck with me and it always kind of was this way to keep me in check whenever I get off the path. Whenever I thought, “This is going to be cool. They’re going to love this.” That’s not what they need. They need the path that’s going to help them be successful. CHARLES: Yeah, boy scouts call this concept shadow leadership. And so essentially, what it is, the boys in the program and the adult leaders are there to basically make sure that they won’t hurt themselves. And that they have transportation and things like that, you know, to help manage the budget. But the boys who are in the program, I think is very similar here. If you’re up there to try and make it the program that you want it to be, that’s different from if you’re in there and actually helping these people chart their own course. One more question that I want to ask because this is Learning Rails 5, if I’m a Rails 3 developer, how do I learn Rails 5? Is the approach the same or are there just more things for me to learn? MARK: Interesting. I would say, yeah, I think the approach is probably, generally, the same if you’re doing Rails 3 to Rails 4 now. You can look at it. You got a great head start. I think that, in my mind, the questions you will start asking yourself is, “Okay, what areas do you want to dig deeper? Do I have… am I using active job or something like that where I can use out of the box tools?” “What are my mailers? Looking like is something that I can… are there additions to the framework that have been added that I can start use?” Again, thinking about that Convention over Configuration mentality, are there conventions that have become more standardized moving from something like version 4 to version 5 that I can begin to incorporate?” I feel like one of the strengths of Rails and this has been true for a decade or more now is Convention over Configuration mentality. And this idea that as a Rails developer, I can clone a repository. I can clone a Rails app, you know, in a relatively short amount of time, I should be up and running and generally know all the moving parts of this application. It has been true because of the way things are built into the framework, the conventions that have been built it. So now, again, things like Action Mailer and Action Cable, those things are beginning to standardize those things. That’s sort of the… my badge for someone who’s an existing Rails developer but maybe don’t own a newer version of Rails. DAVE: And I would say, maybe not read through and dig down on the change logs not much but whenever Rails releases a new version, then, they post in their blog kind of like the highlights of always introducing this release. If you’re coming from Rails 3, go back and look at the Rails 4 and the Rails 5, you know, the major releases to see what kind of new features were added in. And just pinpoint on those features to do a little bit more independent research on them to see what those new features are about, kind of why they were added in, and how you could incorporate them into your application. Or use them as guiding tools to upgrade your older Rails application to a more current version. CHARLES: Alright. Anything else we should dig into before we go to picks? MARK: I have one more if we could. I’m curious if others have ideas about this. This idea of writing, I’ve got in… Chuck, if you can include this, I’ve got a Medium article that I wrote. It’s entitled “Two Writing Assignments for New Programmers.” One of the things I do in my class is I have two writing assignments. One is on diversity and technology. I have them read an article related to just diversity and technology, and some of the challenges there. And then, we use Moodle as the learning management system. It’s a forum assignment. I have them a postal form, you know, they have to post some questions to… and have them post there. And then, I also have them another writing assignment that they do. I’m curious about in part of that, I have some push back from students and said, “Hey, I’m here to learn coding and programming. I’m not here to learn writing. Why am I having this assignment?” My explanation is always that, again, part of being a developer is to be an effective communicator. You know, not just in person but also you know, there are more and more virtual and remote jobs. Even if you’re in an office location with other developers, you’re going to be using lots of emails. That’s my argument. You need to be effective communicator and effective writer. BRIAN: I agree wholeheartedly. People who are in my classes did a lot of writing and a lot of communicating. I get a lot of the same push back and my response was, plainly that, “Your job as a software developer is 20% coding, 80% dealing with people and their problems and their issues, and their requests, and their desires. You have political things to do. You have emails to read. You have emails to write. You will make a mistake and have to write a Post-mortem at some point. There’s a guarantee that there will be some situation that you have to advocate for a belief or an idea that you have. Maybe that’s a written form or maybe that’s from a public speaking during a meeting. You have to be prepared for those. I always put it on me as it is my responsibility as your instructor to prepare you for all of those scenarios, not just the ones where you’re given a specification and turn them into code. That’s what I always… I still firmly believe that. The best software developers that I know, the most successful software developers that I know are people who are great software developers who also are great with the written word. MARK: I think DHH has a great post on… Chuck, you may dig that up. You can include that on the show notes too… on writing and why it’s important, and why they only hire… I think DHH is sort of from the standpoint of hiring new developers. But why writing is important in communicating. It’s important for the software developers... BRIAN: I’m assuming that your school had a community of sort of people in the industry, right? Any advices on programming you want to include? Most of the schools have that. We always ask them. What are the most important skills you want our students to have? And then, the top 3 were all… some people call soft skills. I just think of them as skills because it was always, you know, communication, work ethic, and things like that. Of course being able to solve problems and show up was important but you know, knowing specific programming language is much further down on the list than being a good communicator. MARK: If you can’t do writing, if you can’t show up to work on time and communicate with your colleagues, then, none of your technical skills matter. However, that being said, and I’m sure Jerome can speak to this, hiring, you know, when you’re still looking at requirements for job, it’s all technical. If you can’t sort of past that technical hurdle, then, you never get a chance to, you know, talk about more soft skills. That’s a reality of work. BRIAN: I do want to push back on that… JEROME: No, writing is… communication is like the number one thing employers look out for. DHH actually came into our Slack and did an AMA with our veterans. Writing trumps… your ability to communicate trumps the language you’re learning. They’ll hire a mediocre person who have better communicating skills than a rock star programmer who lacks communication skills, ten times to one. So I am very much against the idea of like, you know… that’s usually how… They don’t take a chance on a guy or a girl who communicates… MARK: That’s encouraging to hear. And the reason I mentioned that is I see a lot of… especially, for remote jobs is that… these blind committees, and you’ve got this. Crazy, I’ve got this one student I was mentoring and he was sort of lamenting to me the technical challenges, the work they have to do upfront before even getting in interview or before doing anything. He’s so focused on technical challenges. That’s sort of one of the frustrations he had. BRIAN: We give those. Where I currently work now, we give those kinds of things out but the job description might not say anything about those kinds of communication skills and what-not. But I guarantee you, we’re testing for them from the second you hit that application button. We’re looking at your cover letter. We’re looking at how you communicate, how you communicate your skills in your resume. And in your conversations, your email conversations with the hiring manager or the recruiting manager, or whoever. Your communication skills are being assessed continuously through the end of your process. Yeah, you’re going to write some code. It’s going to feel like you’re focusing on the technical stuff when you’re doing homework assignments but I’ll tell you right now, if you try your homework assignment back in and say, “Here he is.” We’re going to evaluate you on… Every company will evaluate you on your communication skills at that point. Why not take a few moments to summarize your experience with it and talk about it. That’s the kind of stuff that it’s done as a filter because a lot of these positions have, you know, hundreds of applicants just for 1 and 2 positions. There’s got to be a way to filter people out quickly. And that tends to be the easiest way. MARK: That’s encouraging because just for every person like my students who’s complain about that are probably people who might not be voicing it. But technically, they have a great work sample. They didn’t get a call back for a 2nd or 3rd interview because of poor communication skills. CHARLES: Yup, and this is a whole episode or three that we could do on just this topic. And I tell people this too. They’re evaluating as much as for fit as they are for, you know, technical skill. Once they know you can solve the problem, then, they want to know that you could work well with your team. JEROME: That’s what our students. They’re looking for a person who can do the job. This person who can do the job, they like the most. They’re spending more time with their families. So they don’t want a person who could push them out the window. Keep that in mind. Show your personality. Show that people are going to enjoy working with you. Put yourself in the eye of your co-worker. Try to put that in their mind. See how your process, how you solve problems and the problems they’re having. That’s what they’re for. DAVE: Last thing that I want to say is with being in the professional world, as I developer, I talked to non-developers more often than not. Rather than the team that I work with on a day-to-day basis, I have to talk with QA people, with project managers, with Scrum masters, with support people, implementation people. So it’s very important to have that communication skill. If you cannot convey an issue or convey solution to a problem that they can understand, then, we will implement and develop the wrong thing. If I can’t get out of these people what they’re envisioning, then, we’re going to develop the wrong things. Communication is extremely important to have that good skill set. You know, a lot of times, I’ll speak to my wife and try to convey a programming idea to someone who has completely not tech savvy. She has trouble turning on the Apple TV sometimes. I will try to communicate a programming concept to her with analogies or something that she can understand. And that helps me on a daily basis to practice my communication skills to someone who is not tech savvy to communicate an idea where they can understand and have a conversation with. JEROME: We call that Folly Fridays at my house. I have to explain it to my 13-year old in a way that he can understand. And mine is 13-year old so he doesn’t care anything I’m saying. So it’s a really fun experience. CHARLES: Yeah, let’s go ahead and do some picks. I think there’s some great information in here for people who want to learn a lot on Rails.[This episode is sponsored by hired.com. Are you searching for a new job? That could be stressful, scary and time consuming. Plus your recruiters try to sell you on roles you don’t actually want. And the job feels like you’re throwing your resume into a black hole, never to be seen again. And sometimes, you go all the way through the interview process just to find out at the very end, that the salary offer or the company culture doesn’t match what you’re looking for. Hired is the world’s most intelligent, talent-matching platform for full time and contract opportunities in engineering, development, design, product management, data science, sales and marketing. We make your job search faster, focused and stress free. Instead of endlessly applying to companies and hoping for the best. Hired puts you in control on when and how you connect would compelling new opportunities. After completing one simple application, we help employers apply to hire you. And when hiring you, you receive personal interview request and up front salary information so you could make informed decisions about what opportunities to pursue over a condensed timeline. Hired offers access to more than 4000 innovative employers including big brand names like Facebook and smaller emerging startups. The size and type of company you want to connect with is totally up to you. And we help you find new opportunities in 17 major cities in North America, Europe, Asia and Australia. Hoping for a relocation? Let them know!  Your privacy and autonomy in your job search is of utmost importance and if you go check them out at the show’s link. That’s hired.com/adventuresinangular. You can get double your normal hiring bonus. So instead of $300, you get $600 by signing up on our link. That’s hired.com/adventuresinangular] CHARLES: Dave, do you want to start with some picks? DAVE: Yeah, sure. I just want. It’s called Gruvbox. It’s a theme for your editor or your IDE. It’s very easy on the eyes. I had bad eyesight. So when I’m staring at the dark… at my computer at night. It is a gentle on the eyes theme, very nice. It’s Gruvbox. CHARLES: Brian, what are your picks? BRIAN: I have two picks this week. The first one is… since we’re talking about writing, how do you… maybe you don’t have those kinds of skills, how do you get those kinds of skills? And just like with software development, you can develop those skills through practicing. But there is a good guide that you can get called “Keys to Great Writing.” It’s a book by Stephen Wilbers. I highly recommend it because it talks about grammar rules, communication strategies and really walks you through how you can find your voice. I’ve got copies of the book for lots of different people. I strongly recommend it. If you’re looking for ways to help level up those skills, that might be a good place to look. The other pick I have is Rails. And not the Rails that includes every gem under the sun… but Rails. Last two projects I’ve worked on was Rails, I decided to just constrain myself to use whatever comes stuck with Rails. (01:05:00) BRIAN: So, what that means is I've sort of thrown out our Rspec and Cucumber. And I decided just what's the stock testing, you know, many tests. I started using that. Because I encounter several situations in the past where I kind of gone where the crowd would have gone. And then got stuck doing Rails upgrades and I just spent a lot of time with the tests. So a year ago, I started to resolve to these new projects to do this. She stays on what's in the ... And I got to say a year later, I'm upgrading these applications to Rails 5.1 and the processes have been so smooth. I'm not saying I'm not using any gems. I'm using a device because who wants to write their authentication stuff from scratch. But the rest of it has been incredibly nice. It has been simpler to reason about. And I'm sort of having to just use the default Rail stack renaissance. It's my other pick. CHARLES: Awesome. Jerome, what are your picks?**JEROME: (01:06:00)**I only have two picks today. My first pick is going to be Medium Article that I'm sharing about Rails 5.1 Loves Javascript. Piggybacking what I said earlier and the cohort about being able to use more Javascript with Rails so that is my first pick. Second pick is Hackerrank. They have a really good Ruby track. I think those who are more concerned of the idea of getting more into Ruby and getting a deeper dive into Ruby. For the Rails developers, I highly recommend this free... it is something that you should definitely do if you hadn't done a deep dive into Ruby. CHARLES: Alright. I'm going to jump in here with a couple of picks myself. The first one is I was laid up for a couple of days last week. And so I wound up basically watching some shows, playing some games, and I pick a couple of games that I'm enjoying. One of them is called Clash Castle, I think, or Castle Clash. Anyway, it's kind of like Clash of Clans if you've played that. Little bit different gameplay mechanisms and stuff but I'm enjoying that. And then another one is Mobile Strike which is if you play game of wars like that except it is a lot simpler in a lot of ways. And so I'm enjoying that as well. I also really wanted to shout out about and pick something that Brian has worked on for years. I found out when I interviewed him for my Ruby Story and that is railsmentors.org. So if you're out there, looking for a mentor, you want to mentor people, that is a terrific resource and I'm going to recommend that as well. And then finally, just a quick reminder to go check out rubydevsummit.com. It's free. It's online so, you know, as long as you can get into the Internet when the talks are going, you can watch them. If you want the recordings, you want to be in the Slack channel and stuff. You have to pay for that but if you want to just participate and watch and, you know, have kind of the in-webinar slack or chat, not the slack, but just chat. Then you can get in for free. You just go in, you have to enter your email address and it can get you access to all the stuff. Mark, what are your picks? MARK: So my picks are a... well I kind of have a few picks. My ... pick is Grammarly. I think it is what it is... it is a chrome plugin. It is great for us people who are challenge by spelling and discussing and writing. So it is a great tool for that. I've been using the free version for a few months now and it is great. It has improved my emails by orders of magnitude. So that's one pick. My book pick is the History of Pi. It is Beckmann, I guess it is the guy's last name, Peter Beckmann. It is sort of an old school book I think it is first published in 1971. It is just a fun little book. Your local library probably has a copy of it. Stop by and you can probably read it in a couple of sittings but I do come back to it if I have time to read various chapters from it. And then I think I have to do beer picks. So I think I'll a beer pick and that will be Sierra Nevada's West Coast Stout if you like a dark beer. That's my recommendation. CHARLES: Awesome. And if people want to follow up on this episode with you or just follow you on Twitter, see what you are doing on Github, where do they go? MARK: @marklocklear. That is where the home of everything, marklocklear. I have a link to my website there, locklear.me. But yeah, please follow me and just say, "Hi," if you like on Twitter. JEROME: Is that the first pick that you ever had that was a beer? DAVE:... used to do beer picks all the time, right? JEROME: As I have said it, achievement unlocked.  CHARLES: Yeah, he picked quite a few of them. JEROME: Awesome. Okay. I'm going to start like picking ... too. CHARLES: Yeah, Dave Brady was trying to do Hot Sauces too for a while there so... JEROME: That's a good one. Hot sauce is a great one. CHARLES: Yeah. Alright, well, let's go ahead and wrap this one up. Thanks for coming, Mark. We'll go ahead... MARK: Thank you. It was a pleasure meeting you. I've been a long time listener so it's some sort of a kick for me to actually be on as a guest. CHARLES: Awesome. We'll wrap this one up and we'll catch everyone next week. JOE: Talk to you all later. Bye.[Bandwidth for this segment is provided by Cachefly, the world's fastest CDN. To view your content fast with Cachefly, visit cachefly.com to learn more.]

Sign up for the Newsletter

Join our newsletter and get updates in your inbox. We won’t spam you and we respect your privacy.