 Okay, we're going to try to answer a few viewer questions today. First one is, is there any good way, or is there any good useful way to learn Bash? Is it better to watch videos, reading books about Bash scripting, or is it less reading, more practicing? Are there any free e-book PDF formats? And so let me try to answer that. Really there's no specific way whether reading or watching videos is better. I do both. One thing is, if you're going to read, I personally in the past I've tried buying programming books and then they end up just sitting on the shelf because if I need to do something in programming language I'm more likely to Google it and read it, or YouTube it and watch a video on how to do it. I personally usually do the Google thing first and read because I can skip ahead and skim over the page and look directly at the code where in a video you're kind of like waiting for them to do stuff. Now saying that, I mean I do videos and some people it's better you know to learn by hearing and seeing depending on how comfortable you are with the language already. But the one thing is, if you're going to like Google it or if you have some sort of PDF or e-book that you're reading about, don't copy and paste the code from the examples within the document. Skip it out. The only way you're going to learn is by doing. So when it comes to reading or practicing definitely, I mean both are important, but practice, practice, practice. When you learn something new, do it as much as you can that week that you learn it. And as always I've said this in the past, when it comes to programming it's not memorization of everything. I mean there's going to be some things you do all the time and obviously you're going to learn how to do those. But it's important to keep good notes. Keep notes in a way that you can easily go through them. Probably a little more than 10 years ago, probably about 15 years ago, back when I was in high school, still in my windows days. I did a lot of stuff with visual basic and batch files and I had a little notepad that I wrote stuff in. Nothing was in an actual order but I could flip through it and try to find notes that I had taken on doing certain things. So when you learn something, write it down or save it somewhere on the computer that you can easily search. I personally use Google Docs for this. It's something I find Google Docs useful for as far as keeping regular documents on there. I have no problem using Google Docs even though it's not really open source and you can yell at me for that because I completely agree if you're going to give me a hard time about that. Yeah, you're right, I probably shouldn't be using Google Docs. But it's an easy way for me to put my computer notes and I'll have documents that title, like if I did something in bash, it will say bash-finding-line-number-indocument or something like that. And the thing I like about Google Docs is it's very easy to search through. And the document itself might be just one or two lines of code but I have hundreds of them. If you do do that, the one big thing about using web-based applications like that is don't become dependent on them. And one of the great things about Google is they do offer Google Takeout and that's for pretty much all their services. You can go to Google Takeout and download all your documents. And I do this every couple of months. I go and I download all my documents from my Google Docs account now known as Google Drive. I back them up on my Pogo Plug and every couple of months I back up this new stuff on my Pogo Plug to CDs or DVDs and put them inside my safes. So one, always have multiple backups of everything. And two, if you're going to use a service like Google Docs, don't be dependent on it. At this point, I could take all my documents that I've done over the years and probably put them into my SQL on my own server and then write a simple little web application and search through them because formatting isn't really a big deal because they're not actual real word documents like you would use for work. They're just scripts. I've also been putting some more, my fuller scripts on my paste bin but that's more for sharing with people rather than just quick notes which is what I use Google Docs for. So definitely just practice and keep good notes whether it's on paper, on your local computer, on the server you have somewhere, which is a great way once again because you can access it from anywhere or if you don't have your own server, something like Google Docs. But once again, always keep copies for yourself so if they decide to cancel your account or change their terms and you don't agree with it, you're not locked in. Yes, so let's move up to the next question is how many programming languages do you know and which ones are they? That's a hard question because once you learn programming and you get really good at almost any language, you can look at most other languages and at least understand them even though you may not be able to write in them because they're so similar and it's kind of like my father can't speak Italian but he can understand people when they are speaking Italian fairly well just because he's heard it so much. I may not know, I've never done anything in C-Sharp but I'm sure if I looked at C-Sharp code for the most part I could look through it and figure out what it's doing, you know, majority of the time. But could I sit down and write C-Sharp? No and so as far as what programming languages I know what I'm trying to get to is I've worked with a lot of programming languages but when I say which ones do I know, I mean do I know fluently? Probably very few. I've done stuff in PHP, JavaScript, I've done a little bit in Java, I've done some stuff in C, C++ obviously, Bash. Years ago like I said in my Windows day I used Visual Basic and Batch Scripts but as far as right now that I could sit down and I feel fairly comfortable with, definitely Bash and just because I've been working with it a lot lately both PHP and JavaScript both of which are relatively new to me but I've spent the last six months doing a lot of stuff with them where something, if you asked me a year and a half, two years ago Python would have been on the list and I still probably know Python fairly well but I've used it very little over the last year and a half so I'm probably not as good as it was when I was using it regularly and I think Python is great. As far as local stuff on my machine I mainly use Bash, it's always been that way and then when it comes to web stuff I just really like PHP for server-side stuff even though Python and Bash could be used as server-side scripts. So right now, JavaScript, PHP and Bash are probably the ones I am most comfortable with so I'll say those are the ones I know. And then let's see, someone asks if I will be doing any Java programming tutorials. I mean that's always a possibility, about six months ago I played with Java for about a month. Once again I was trying, it's like I would learn something, the next day I would try to do that from memory and then add something new to it and I understand Java script enough now, or I'm sorry, Java enough now that I could, I can definitely, looking at my notes do it but am I fluent with it, no, I don't think I'd be the best right now where I'm at teaching tutorials on it because I don't understand it well enough to explain it well. If you are looking for Java tutorials, I'm going to say check out New Boston or The New Boston, he does lots of tutorials and a lot, he has I think like 200 tutorials on Java and I went through most of them when I was learning. Main reason I was learning was not so much that I wanted to write stuff in Java but I wanted to be able to understand Java better when I'm looking at Android programs because Android is all Java based and pretty much everything for Android is written in Java and I wanted to just have the knowledge to be able to understand it if I was looking at the code. Now, this isn't a direct question that someone asked but when it comes to picking programming languages, obviously there's some better suited for other things but as far as which programming language is better, yes some are more efficient, obviously C is going to be a great programming language as far as power because everything else is written in C so if you can do it in the other languages you can do it in C and you can probably do it more efficiently for what you're doing but it's going to take probably a lot more work than just throwing something together in Python. But my rules when it comes to picking a programming language is just that you keep it open and I'll give you an example. Even though you can use C, some people will use libraries that are proprietary and that limits them. If you use the Windows header file library you can make GUIs for Windows but no other operating system at least not natively where you could use C and something like GTK and then your program will run on Linux, Windows and Mac or you can use Qt that's QT and from my understanding I haven't played with the newest version but I guess the newest version not only runs on Windows, Linux, Mac but also you can compile stuff with it for Android and iPhone. So definitely when you're picking a programming language I wouldn't go with something like Visual Basic. Whether it's good or not for what it's used for you write something in Visual Basic you learn all this time learning Visual Basic and you're limited to just Windows where if you learn Python or Perl or C or C++ these are universal languages. So don't limit yourself with that and there was going to be one other thing I said but I think that's kind of it. You don't want to use even if you're using an open language don't use proprietary stuff within it to limit yourself and then don't use proprietary languages like Visual Basic other than that I've never done anything with Perl but you know if someone was to argue like Perl versus Python I think it's kind of for the most part irrelevant because if you know how to use it and it does what you need to do and it will run on pretty much any system you're good to go even if you know C code might run slightly faster than Python doesn't really matter if you're doing something small now if you're doing large calculations using something like C could speed up you could run something probably in a couple of minutes that might take something like Bash or Python a whole day to run but that's crunching big numbers so basically when it comes to picking a language to learn look at what you're doing I mean even Bash is since it's open source has been ported to Windows either in Sigwin or a standalone you can if you search Bash for Windows you can get yourself a single executable file obviously when we write a lot of Bash stuff for Linux we're going to be using external tools like Wget maybe Nmap grep which aren't built into Bash but those are all cross-platform too so you can get Wget for Windows it's just kind of a pain because Windows isn't supply that stuff for you so even when it comes across cross-operating system compatibility even Bash is fairly compatible it just might take a little more extra work packaging and that's when it comes to to programming you programming something that's that will run on all operating systems is fairly simple it's just packaging it for the different operating systems can be a little bit of a pain if you've never done it before so that's a little bit on programming languages that I know I use and suggestions for you so once again thank you for watching please visit filmsbychris.com that's Chris with a K there should be a link in the description feel free to ask questions and comment below in this video if the video is recent obviously if this video is more than a couple of weeks old I'm probably not going to get the comments from it so check out my newer videos for sure but thank you for watching and I hope that you have a great day