Interview - Josh (Freelance Developer)
"Fail a hundred times, and watch the one success promote you to a new level." - Josh
I've been kind of quiet lately on my site. I've been busy with school and I haven't really had a lot of time to sink into long projects that are worthy of posting here and projects that might help people learn. I am in a number of online communities for penetration testing and I've made good friends with a lot of people, including some professionals. I realized that I had a great resource at my fingertips recently. I asked a couple of the friends I've made if they would be interested in participating in an interview so I can gain their insight and see things from other perspectives. All the interviews are done via text (Discord, specifically) and all the responses are unaltered save for some proofreading. Josh is a freelance developer and you can reach him at firstname.lastname@example.org. He asked that I link his Facebook page as well, and you can find that here.
Cyrus: What are your interests within the IT world?
Josh: Currently I have been mainly focusing on programming . I have been learning web scraping , web automation , API writing ,flask application (both web and standalone utilizing PyQt5 Qwebengine), and custom tools for network administration. I also enjoy doing capture the flag games on HackTheBox and continually applying programming skills towards the ultimate goal of becoming a security researcher or penetration tester.
Cyrus: What got you interested in those sorts of things? Related question, are those sorts of things the things you were initially interested in with IT? Josh: When I was a young kid a family friend was a computer guy and my family thought it might be something I'd enjoy as i had taken a liking to my uncle's 486 PC. So i initially started learning DOS (don't remember the version, windows 3.1 era).
Then years later started learning the hardware. I started building my own computers and tinkering around on IRC and random dial-up boxes, also trying to learn Basic. I would get these magazines from a friend and copy pages of source code into the window and see how they would come out. I learned a lot about the online ecosystems and of course with that, came learning about the seedy happenings of the net - malware and hackers. So naturally wanting to understand them better, i started learning about their materials.
Cyrus: I see, I see. What hooked you into this? For me, I like knowing how things work and tinkering with things. I'm assuming it's the same thing with you, but do you have anything to say about that?
Josh: It was a friend of mine who I found a great fascination with as a younger kid . He was always taking stuff apart and excited to show me his newest find, or hacked together gadget, or custom software he'd written. After that, I was hooked. It was a world i didn't understand, and as a compulsive learner, I was compelled to learn all I could. That was 20 years ago.
"It was a world i didn't understand, and as a compulsive learner, I was compelled to learn all I could." - Josh
Cyrus: Around what age would you say you got interested in this "world" and how old are you now? How much have your goals shifted and what sort of trials have you had to overcome in your learning efforts? I've personally hit a few roadblocks I've had to overcome as I've been learning about things such as programming, and it was sort of disheartening. Additionally, if there was something that current you could tell past you what would it be?
Josh: I started learning DOS when i was 5, and I'm 31 now. Personally, I tried to learn programming for the better part of 20 years now. I would grab books and watch videos, but for whatever reason i would just give up because i felt like i wasn't making progress. I did that about 10 times, until the last time i took a different approach. Instead of saying “I need to learn OOP” I said “I need to write a project”. So i picked a project, and trudged through it, breaking each step down until I was able to say “To write to a file I need to see if its there, and if not, I need to open it in write mode so it's created.” Learning the things i needed, as I needed them. No structure. Then fast forward a week, and I’m learning all kinds of things , all the while actually BUILDING something, and it kept me interested.
Current me would have told past me to stop looking at the bigger picture necessarily, and break everything into manageable chunks, and the overall layout would eventually make sense. Trudge through it, get it working, rewrite it utilizing better ways to do things . Do that several times, and grow from it. Fail a hundred times, and watch the one success promote you to a new level. Oh And read the man pages. :)
Goals.. Well, goals are a tricky thing, my goals have always been pretty steady - to learn something, and try and better my life, and other's lives by doing so.
But one thing that has changed would be my goal in terms of advancement . You start programming and you say "What do you want to do?" but you don't really understand the whole picture and scope of what's possible, so as you learn, you think about new ways to implement a idea, or create whole new ones (machine learning?)
Cyrus: That makes sense. You don't really know what you don't know. What's your current goals in terms of employment or just general advancement?
Josh: I plan on continuing freelance development jobs until i feel ready to make the full plunge into full-time dev. Also plan on taking some college level courses. Oh and to of course learn to ignore the 'impostor syndrome'. Cyrus: What's freelance work like? What would you say to someone who is hoping to get into freelance work?
Josh: Its pretty rewarding. I feel if you were to work on one project for a long time, you learn everything you can about one subset of problems. With freelance jobs, I've found that its a constant change of job types, project types, and of course employer types. This forces one to be able to make quick changes in styles of work, make good design practices with their own base code so it can be modularly useful to a wide a variety of projects, and to of course learn how to communicate effectively with a large variety of personality types. Also, its very nice to be able to make your own hours (for the most part).
To anyone looking to get into the freelancing side of things, I would suggest learning the different categories of things you will find yourself doing . Then, write base code for each (scraping, automation, etc) and always make it as modular as possible, so you can re-use libraries. Time is money!
Cyrus: When I first started programming, I was obsessed with writing everything from scratch because it felt like using libraries was cheating. I wasted so much time with that mindset, and I've done a lot better once I broke out of it.
I know there's this stereotype of all people working in IT as being awkward smart people who can do amazing technical things, but can't handle a basic conversation. How well would you personally say that holds? What would you say to people who might not be the best with people and/or might have some social anxiety? Any tips as to how to overcome it?
Josh: As a sufferer of anxiety myself, I struggle daily. One thing I've found that helps me, is to force yourself to make conversation when you feel the most awkward. You will eventually start becoming less anxiety prone in situations or at the very least, that will train your brain to be more social in the anxious state, which over time will become your new 'norm'. If you're really bad, talk online to as many people as humanly possible. Re-read your conversations, and reflect upon your conversation skills. Grow from them.
Cyrus: As someone who suffers from anxiety too, I personally find that being sure that I know what i'm talking about eases some worries I have. I can confirm that talking in online communities has made my social and conversation skills improve. Some days are better than others and I have nights where I think back to that one time I said something dumb and it keeps me up for a while, but I'm of the mindset that as long as I'm trying and making an attempt to grow as a person I'm not a failure or anything.
Where do you see technology being in 5 years? What do you believe the job market will look like and what sorts of changes do you anticipate happening to the technological landscape? I personally believe that AI and Machine Learning will continue to be more and more prevalent and have more of a focus. There's a lot of profit to be made with analytics and whatnot.
Josh: That's a hard question to answer - tech in 5 years. I think a big change in the way the internet does its exchanges with happen with Ethereum's ledger system.
I also agree that machine learning/ AI will shift the responsibilities of tech workers in some way. Some jobs will become less prevalent, while others will grow.
I think if we look at history of technological advances, its more about the application of current ideals in a unique way after a certain period of time. Like the new wifi 6 that is slated for the next big update to wifi technology. Very impressive.
Cyrus: Where do you see yourself in 5 years? Do you anticipate working as a "professional" penetration tester?
Josh: Only time will tell. I'm still exploring my creativity and where if it in the whole world , but i think there is a good chance of such.
I don't think I would have seen myself being where I'm at now 5 years ago so I understand what you mean. Any closing statements you would like to make?
Josh: Thank you for your time and to anyone who reads this, don't give up.