The Self-Taught Computer Scientist. Cory Althoff. Читать онлайн. Newlib. NEWLIB.NET

Автор: Cory Althoff
Издательство: John Wiley & Sons Limited
Серия:
Жанр произведения: Зарубежная компьютерная литература
Год издания: 0
isbn: 9781119724339
Скачать книгу
The next day, a small startup called me for an interview. I did my best to look decent. I shaved, put on clean clothes, tied my hair back, showered (a hell of a task for the homeless), and showed up. I came clean, explained my situation, explained why I took my chances here in Austin, did my best during the interview to show I may not be the best as I stood there at that moment, but given an opportunity, I would work my ass off to show that one day I could be the best.

       I left feeling like I bombed the interview. I thought maybe my honesty had sunk my chances, but a week and a half later, after feeling like giving up entirely, the startup called me back in for a second interview.

       When I showed up, it was only the big dog. The boss said he was impressed by my honesty, and he wanted to give me a chance. He told me I had a decent foundation, and I was like a box: a sturdy but relatively empty box. He thought I was sturdy enough to handle anything they threw at me, and I would learn on the job. Finally, he told me I would start on December 6.

       One year later, I live in a much nicer apartment than before becoming a programmer. I am respected among my co-workers, and they even ask my opinion on significant company matters. You can do or be anything. Never be afraid to try, even if it means taking a real chance at everything falling apart.

      Tianni Myers

      Next up is Tianni Myers, who read The Self-Taught Programmer and emailed me the following story about his journey learning to code outside of school:

      My self-taught journey started in a web design class I took in college while working toward a bachelor's degree in media communications. At the time, I was interested in writing and had dreams of working in marketing. My goals shifted after deciding to learn to program. I'm writing to share my self-taught story about how I went from retail cashier to a junior web developer in 12 months.

       I started out learning the basics of HTML and CSS on Code Academy. I wrote my first Python program, a numbers game; the computer picked a random number, and the user had three tries to guess the correct one. That project and Python got me excited about computers.

       My mornings started at 4 a.m., making a cup of coffee. I spent 6 to 10 hours a day reading programming books and writing code. At the time, I was 21, and I worked part-time at Goodwill to make ends meet. I had never been happier because I spent most of my day doing what I loved, which was building and creating various programming languages as my tools.

      I was on Indeed one day casually applying for jobs. I wasn't expecting to get a response, but I did a few days later from a marketing agency. I did a SQL assessment on Indeed followed by a phone interview, then a code assessment, and soon after an in-person interview. During my interview, the web development director and two senior developers sat down and reviewed my answers for the code assessment. I felt good because they were blown away by some of my answers and pleasantly surprised when I told them I was self-taught. They told me some of my answers were better than ones given by senior developers that they had previously given the same code assessment. Two weeks later, they hired me.

       If you can put in the work and get through the pain, then you can make your dreams come true as I did.

      for i in range(100): print("Hello, World!") >> Hello, World! >> Hello, World! >> Hello, World!

      The text # http://tinyurl.com/h4qntgk contains a URL that takes you to a web page that contains the code from it, so you can easily copy and paste it into Python's IDLE text editor if you are having problems getting the code to run. The text that comes after >> is the output of Python's interactive shell. Ellipses after an output ( ) mean “and so on.” If there is no >> after an example, it means either the program doesn't produce any output or I am explaining a concept, and the output is not important. Anything in a paragraph in monospaced font is some form of code or code output or programming jargon.

      Installing Python

      To follow the examples in this book, you need to have Python version 3 installed. You can download Python for Windows and Unix at http://python.org/downloads . If you are on Ubuntu, Python 3 comes installed by default. Make sure you download Python 3, not Python 2. Some of the examples in this book will not work if you are using Python 2.

      Python is available for 32-bit and 64-bit computers. If you purchased your computer after 2007, it is most likely a 64-bit computer. If you aren't sure, an Internet search should help you figure it out.

      If you are on Windows or a Mac, download the 32- or 64-bit version of Python, open the file, and follow the instructions. You can also visit http://theselftaughtprogrammer.io/installpython for videos explaining how to install Python on each operating system.

      Troubleshooting

      Challenges

      Many of the chapters in this book end with a coding challenge for you to solve. These challenges are meant to test your understanding of the material, make you a better programmer, and help prepare you for a technical interview. You can find the solutions to all of the challenges in this book on GitHub at https://github.com/calthoff/tstcs_challenge_solutions .

      As you are reading this book and solving the challenges, I encourage you to share your wins with the self-taught community by using #selftaughtcoder on Twitter. Whenever you feel like you are making exciting progress on your journey learning to code, send a motivational tweet using #selftaughtcoder so other people in the community can get motivated by your progress. Feel free to also tag me: @coryalthoff .

      There is one last thing I want to cover before you dive into learning computer science. If you are reading this book, you've already taught yourself to program. As you know, the most challenging part about picking up a new skill like programming isn't the difficulty of the material: it is sticking with it. Sticking with learning new things is something I struggled with for years until I finally learned a trick that I would like to share with you, called Don't Break the Chain.

      Jerry Seinfeld invented Don't Break the Chain. He came up with it when he was crafting his first stand-up comedy routine. First, he hung a calendar up in his room. Then, if he wrote a joke at the end of each day, he gave himself a red X (I like the idea of green check marks better) on the calendar for that day. That's it. That is the entire trick, and it is incredibly powerful.

      Once you start a chain (two or more green check marks in a row), you will not want to break it. Two green check marks in a row become five green check marks in a row. Then 10. Then 20. The longer your streak gets, the harder it will be for you to break it. Imagine it is the end of the month, and you are looking at your calendar. You have 29 green check marks. You need only one more for a perfect month. There is no way you won't accomplish your task that day. Or as Jerry Seinfeld describes it:

      After