Artwork

Player FM - Internet Radio Done Right

172 subscribers

Checked 8M ago
הוסף לפני seven שנים
Вміст надано Trevor Page. Весь вміст подкастів, включаючи епізоди, графіку та описи подкастів, завантажується та надається безпосередньо компанією Trevor Page або його партнером по платформі подкастів. Якщо ви вважаєте, що хтось використовує ваш захищений авторським правом твір без вашого дозволу, ви можете виконати процедуру, описану тут https://uk.player.fm/legal.
Player FM - додаток Podcast
Переходьте в офлайн за допомогою програми Player FM !

From Backpacking Instructor to Coder in 5 Months – Jeff Podmayer

1:18:42
 
Поширити
 

Fetch error

Hmmm there seems to be a problem fetching this series right now. Last successful fetch was on August 24, 2024 04:10 (8M ago)

What now? This series will be checked again in the next day. If you believe it should be working, please verify the publisher's feed link below is valid and includes actual episode links. You can contact support to request the feed be immediately fetched.

Manage episode 408100257 series 2398153
Вміст надано Trevor Page. Весь вміст подкастів, включаючи епізоди, графіку та описи подкастів, завантажується та надається безпосередньо компанією Trevor Page або його партнером по платформі подкастів. Якщо ви вважаєте, що хтось використовує ваш захищений авторським правом твір без вашого дозволу, ви можете виконати процедуру, описану тут https://uk.player.fm/legal.

Summary

If you want to connect/reach out to Jeff, here's his LinkedIn profile: https://www.linkedin.com/in/jeffpodmayer

In this episode, Trevor interviews Jeff, who made a transition from being an outdoor guide to pursuing a career in tech. Jeff shares his experiences working as a guide in the mountains and his journey into the tech industry. He discusses his interest in coding and how he researched different bootcamp options before choosing Coders Campus. Jeff also talks about his learning experience at the bootcamp and provides feedback for improvement. In this conversation, Jeff and Trevor discuss various aspects of the bootcamp experience and the job search journey. They talk about the importance of exercises and assignments in solidifying learning, as well as the need for more exercises in the later stages of the bootcamp. They also discuss the challenges of covering advanced topics and the length of the videos. Jeff shares his preparation for the job search and the support he has received from the career services team. Trevor emphasizes the importance of networking and finding a support system during the career transition. They conclude the conversation by discussing the value of honesty and support in the bootcamp experience.

Takeaways

  • Transitioning from one career to another requires thorough research and exploration of different options.
  • Choosing a bootcamp with experienced instructors who have worked in the industry can provide valuable insights and guidance.
  • Learning to code is a skill that can be compared to learning a trade, and it requires practice and hands-on experience.
  • The struggle and frustration are part of the learning process, and it's important to learn how to respond to challenges in a calm and focused manner.
  • Completing a bootcamp program can provide the necessary skills and knowledge to pursue a career in the tech industry. Exercises and assignments are crucial for reinforcing learning and should be included throughout the bootcamp.
  • More exercises should be included in the later stages of the bootcamp to solidify knowledge.
  • Covering advanced topics in the bootcamp can be challenging, and there should be a balance between depth and length of videos.
  • Preparation for the job search is essential, and networking is a valuable strategy for finding opportunities.
  • Having a support system during the career transition can provide encouragement and guidance.
  • Honesty and support are important in the bootcamp experience, both from instructors and fellow students.

Chapters

00:00

Introduction and Background

02:58

Transition from Outdoor Guide to Tech Career

05:47

Love for Nature and Outdoor Activities

10:00

Exploring Coding as an Option

26:09

Choosing Coders Campus

31:49

Learning Experience at Coders Campus

39:08

Feedback and Improvements

39:38

Exercises and Assignments

40:56

Topics Covered Towards the End

42:25

Revamping the Videos

46:43

Preparing for the Job Search

47:42

Networking and Support

53:54

Advice to the Younger Self

01:08:12

The Importance of Support

01:16:29

Rejection and Selectivity

01:17:26

Connecting with Jeff

Interested in starting your coding career?

I'm now accepting students into an immersive programming Bootcamp where I guarantee you a job offer upon graduation.

It is a 6 month, part-time, online Bootcamp that teaches you everything you need to know to get a job as a Java developer in the real-world.

You can learn more via www.coderscampus.com/bootcamp

The post From Backpacking Instructor to Coder in 5 Months – Jeff Podmayer appeared first on Coders Campus.

  continue reading

76 епізодів

Artwork
iconПоширити
 

Fetch error

Hmmm there seems to be a problem fetching this series right now. Last successful fetch was on August 24, 2024 04:10 (8M ago)

What now? This series will be checked again in the next day. If you believe it should be working, please verify the publisher's feed link below is valid and includes actual episode links. You can contact support to request the feed be immediately fetched.

Manage episode 408100257 series 2398153
Вміст надано Trevor Page. Весь вміст подкастів, включаючи епізоди, графіку та описи подкастів, завантажується та надається безпосередньо компанією Trevor Page або його партнером по платформі подкастів. Якщо ви вважаєте, що хтось використовує ваш захищений авторським правом твір без вашого дозволу, ви можете виконати процедуру, описану тут https://uk.player.fm/legal.

Summary

If you want to connect/reach out to Jeff, here's his LinkedIn profile: https://www.linkedin.com/in/jeffpodmayer

In this episode, Trevor interviews Jeff, who made a transition from being an outdoor guide to pursuing a career in tech. Jeff shares his experiences working as a guide in the mountains and his journey into the tech industry. He discusses his interest in coding and how he researched different bootcamp options before choosing Coders Campus. Jeff also talks about his learning experience at the bootcamp and provides feedback for improvement. In this conversation, Jeff and Trevor discuss various aspects of the bootcamp experience and the job search journey. They talk about the importance of exercises and assignments in solidifying learning, as well as the need for more exercises in the later stages of the bootcamp. They also discuss the challenges of covering advanced topics and the length of the videos. Jeff shares his preparation for the job search and the support he has received from the career services team. Trevor emphasizes the importance of networking and finding a support system during the career transition. They conclude the conversation by discussing the value of honesty and support in the bootcamp experience.

Takeaways

  • Transitioning from one career to another requires thorough research and exploration of different options.
  • Choosing a bootcamp with experienced instructors who have worked in the industry can provide valuable insights and guidance.
  • Learning to code is a skill that can be compared to learning a trade, and it requires practice and hands-on experience.
  • The struggle and frustration are part of the learning process, and it's important to learn how to respond to challenges in a calm and focused manner.
  • Completing a bootcamp program can provide the necessary skills and knowledge to pursue a career in the tech industry. Exercises and assignments are crucial for reinforcing learning and should be included throughout the bootcamp.
  • More exercises should be included in the later stages of the bootcamp to solidify knowledge.
  • Covering advanced topics in the bootcamp can be challenging, and there should be a balance between depth and length of videos.
  • Preparation for the job search is essential, and networking is a valuable strategy for finding opportunities.
  • Having a support system during the career transition can provide encouragement and guidance.
  • Honesty and support are important in the bootcamp experience, both from instructors and fellow students.

Chapters

00:00

Introduction and Background

02:58

Transition from Outdoor Guide to Tech Career

05:47

Love for Nature and Outdoor Activities

10:00

Exploring Coding as an Option

26:09

Choosing Coders Campus

31:49

Learning Experience at Coders Campus

39:08

Feedback and Improvements

39:38

Exercises and Assignments

40:56

Topics Covered Towards the End

42:25

Revamping the Videos

46:43

Preparing for the Job Search

47:42

Networking and Support

53:54

Advice to the Younger Self

01:08:12

The Importance of Support

01:16:29

Rejection and Selectivity

01:17:26

Connecting with Jeff

Interested in starting your coding career?

I'm now accepting students into an immersive programming Bootcamp where I guarantee you a job offer upon graduation.

It is a 6 month, part-time, online Bootcamp that teaches you everything you need to know to get a job as a Java developer in the real-world.

You can learn more via www.coderscampus.com/bootcamp

The post From Backpacking Instructor to Coder in 5 Months – Jeff Podmayer appeared first on Coders Campus.

  continue reading

76 епізодів

כל הפרקים

×
 
Episode Summary In this episode, Trevor Page delves into the challenges aspiring software developers face when trying to land their first job. Drawing from his 15 years of programming experience and 12 years of teaching, Trevor offers a unique perspective on the realities of breaking into the tech industry. He discusses the common misconceptions new developers have, the difficulties of finding a job, and why having coding skills alone isn't enough to secure a position. Trevor also introduces Coders Campus's new Guaranteed Internship Program, designed to provide real-world coding experience in a team environment while working on software projects for actual customers. This innovative program offers a profit-sharing model, allowing participants to earn money based on the success of the projects they work on. He shares insights into the structure of the internship, the roles participants will play, and the long-term benefits of gaining practical experience. Key Topics Discussed: The Reality of Getting a Coding Job: Understanding that having the skills does not mean you are guaranteed a job. Common Pathways to Employment: Exploring traditional methods like open source contributions, volunteering, and unpaid internships, and why they might not be sufficient. Introducing the Guaranteed Internship Program: A detailed overview of Coders Campus's new initiative to help aspiring developers gain real-world experience while working in a team and potentially earning income through profit-sharing. The Importance of Real-World Experience: How hands-on coding in a collaborative environment can significantly improve job prospects. Case Study – JP's Success: A real-life example of a Coders Campus student who secured a job after participating in the internship program. Opportunities for Non-Bootcamp Participants: Trevor hints at a future program for those who already have coding skills but need certification and experience. If you're ready to take your coding career to the next level and join a program that offers real-world experience, visit coderscampus.com/bootcamp to apply for the next cohort. For those interested in the upcoming certification program, email Trevor directly at trevor@coderscampus.com . Quotes: “Just because you have the skills does not mean you are owed the job.” “If you and any other entry-level developer are applying to the same position, but you have real-world experience on your resume, guess who they're going to look at first?” Links and Resources: Coders Campus Bootcamp Email Trevor: trevor@coderscampus.com The post Unlocking Your First Coding Job: The Realities and Solutions appeared first on Coders Campus .…
 
Summary To reach out and connect with Alex, here's her LinkedIn profile: https://www.linkedin.com/in/alex-mamolo-2a1b57222/ In this episode, Trevor interviews Alex, who shares her journey from being a musician to transitioning into the tech industry. Alex talks about her background in music, playing drums in a band, and the challenges she faced in her musical career. She then discusses her experience working in data entry and her decision to pursue a career in technology. Alex explains how she discovered coding and her decision to join a coding bootcamp. She shares her struggles with understanding methods and functions and the support she received from her instructors. Alex emphasizes the importance of understanding the fundamentals of coding and how it has impacted her personal growth and progress. In this conversation, Alex discusses her experience in the coding bootcamp and the challenges she faced. She shares how she overcame those challenges and gained confidence in her coding abilities. The conversation also explores the difficulty curve in learning programming and the importance of perseverance. Alex talks about her job search process and the need for relentless follow-up. The conversation concludes with an invitation for listeners to connect with Alex and seek advice on their own coding journey. Takeaways Transitioning from a non-technical career to the tech industry is possible with the right support and guidance. Learning HTML and CSS is a great starting point for beginners in coding. Struggling with certain concepts is common in coding, and seeking help from instructors is crucial for overcoming challenges. Understanding the fundamentals of coding, such as methods and functions, is essential for building a strong foundation. Overcoming challenges in the bootcamp can lead to significant growth and improved coding skills. The difficulty curve in learning programming often means that the second half of the bootcamp is easier than the first half. Struggling on the job is different from struggling in the bootcamp, but both experiences can be valuable learning opportunities. Relentless follow-up in the job search process can significantly increase the chances of getting an interview. Revisiting assignments and focusing on mastering core skills can help improve coding abilities. Networking and interpersonal skills are just as important as coding skills in the job search process. Chapters 00:00 Introduction and Background 02:09 Interest in Technology and Music 05:31 Transition from Music to Data Entry 06:26 Exploring Tech Education Options 08:23 Choosing a Coding Bootcamp 09:52 Learning HTML and CSS 12:43 Struggles with Methods and Functions 15:35 Support and Guidance from Instructors 23:00 Importance of Understanding Fundamentals 24:25 Personal Growth and Progress 24:54 Overcoming Challenges in the Bootcamp 26:15 The Difficulty Curve in Learning Programming 27:44 Struggling on the Job vs. in the Bootcamp 29:38 The Excitement and Satisfaction of Coding 31:04 Job Search Process and Challenges 32:33 The Importance of Relentless Follow-up 34:01 Conversion Rate in Job Applications 36:55 Balancing Time Between Assignments and Job Search 38:23 Avoiding the Comfort Zone and Focusing on Networking 39:20 Revisiting Assignments to Improve Skills 40:46 Alex's Strong Understanding of Programming Terminology 42:35 Follow-up and Feedback in the Job Search Process 45:29 Proving Interest and Following Up After Rejection 47:22 Closing Remarks and Invitation to Connect Interested in starting your coding career? I'm now accepting students into an immersive programming Bootcamp where I guarantee you a job offer upon graduation. It is a 6 month, part-time, online Bootcamp that teaches you everything you need to know to get a job as a Java developer in the real-world. You can learn more via www.coderscampus.com/bootcamp The post Alex almost quit coding forever while in this Bootcamp appeared first on Coders Campus .…
 
Summary To reach out and connect with Tony: https://www.linkedin.com/in/edmonds-tony/ In this episode, Trevor Page interviews Tony, a digital nomad who transitioned from a traditional university education to a coding bootcamp. Tony shares his fascination with Latin America and the digital nomad lifestyle, as well as his decision to pursue a degree in computer science. He explains how he discovered the Coders Campus bootcamp and the benefits of the program. Tony also discusses his job search process and the importance of a structured approach. The episode concludes with insights into the interview process and the successful outcome for Tony. In this conversation, Tony shares his experience of getting a job after completing a bootcamp. He discusses the job offer he received and the salary he negotiated. The conversation also explores the opportunities for remote work and the value of working in an office. Tony emphasizes the importance of mentors and the benefits of being able to pivot to different roles within a company. He advises aspiring bootcamp students to stay positive and not be discouraged by negative news. Tony also shares his advice for starting a new job and the importance of being resourceful and asking for help when needed. Takeaways Negotiate your salary and consider the market conditions in your area. Remote work opportunities are available, but starting with a hybrid role can provide valuable experience. Working in an office and collaborating with experienced developers can accelerate your learning and career growth. Having mentors and leveraging their expertise can help you progress quickly in your career. Bootcamp graduates can pivot to different roles within a company and apply their skills in various domains. Don't be discouraged by negative news and focus on your own journey and progress. When starting a new job, be resourceful, spend time learning on your own, and ask for help when needed. Chapters 00:00 Introduction and Background 02:23 Becoming a Digital Nomad 03:42 Fascination with Latin America and the Digital Nomad Lifestyle 06:33 Choosing the University Path 09:20 Transitioning to a Bootcamp 13:03 The Benefits and Limitations of University Education 20:05 The Job Search Process 23:43 The Importance of a Structured Job Search 28:03 Seeking Remote Job Opportunities 30:50 The Interview Process 31:48 Job Offer and Salary 33:15 Remote Work Opportunities 34:39 The Value of Working in an Office 35:03 Transitioning to Remote Work 37:24 The Importance of Mentors 38:18 Opportunities for Development within a Company 39:39 Pivoting to Different Roles 40:36 Enjoying the Data Role 41:32 The Reality of Getting a Job 42:31 The Influence of News and Media 44:30 Advice for Bootcamp Students 48:16 Tony's Advice for Himself 49:41 Tony's Final Project 53:52 Connecting with Tony on LinkedIn 54:22 Questions for Trevor Interested in starting your coding career? I'm now accepting students into an immersive programming Bootcamp where I guarantee you a job offer upon graduation. It is a 6 month, part-time, online Bootcamp that teaches you everything you need to know to get a job as a Java developer in the real-world. You can learn more via www.coderscampus.com/bootcamp The post From Struggling University Comp Sci Grad to Employed Coder – Tony Edmonds appeared first on Coders Campus .…
 
Summary If you want to connect/reach out to Jeff, here's his LinkedIn profile: https://www.linkedin.com/in/jeffpodmayer In this episode, Trevor interviews Jeff, who made a transition from being an outdoor guide to pursuing a career in tech. Jeff shares his experiences working as a guide in the mountains and his journey into the tech industry. He discusses his interest in coding and how he researched different bootcamp options before choosing Coders Campus. Jeff also talks about his learning experience at the bootcamp and provides feedback for improvement. In this conversation, Jeff and Trevor discuss various aspects of the bootcamp experience and the job search journey. They talk about the importance of exercises and assignments in solidifying learning, as well as the need for more exercises in the later stages of the bootcamp. They also discuss the challenges of covering advanced topics and the length of the videos. Jeff shares his preparation for the job search and the support he has received from the career services team. Trevor emphasizes the importance of networking and finding a support system during the career transition. They conclude the conversation by discussing the value of honesty and support in the bootcamp experience. Takeaways Transitioning from one career to another requires thorough research and exploration of different options. Choosing a bootcamp with experienced instructors who have worked in the industry can provide valuable insights and guidance. Learning to code is a skill that can be compared to learning a trade, and it requires practice and hands-on experience. The struggle and frustration are part of the learning process, and it's important to learn how to respond to challenges in a calm and focused manner. Completing a bootcamp program can provide the necessary skills and knowledge to pursue a career in the tech industry. Exercises and assignments are crucial for reinforcing learning and should be included throughout the bootcamp. More exercises should be included in the later stages of the bootcamp to solidify knowledge. Covering advanced topics in the bootcamp can be challenging, and there should be a balance between depth and length of videos. Preparation for the job search is essential, and networking is a valuable strategy for finding opportunities. Having a support system during the career transition can provide encouragement and guidance. Honesty and support are important in the bootcamp experience, both from instructors and fellow students. Chapters 00:00 Introduction and Background 02:58 Transition from Outdoor Guide to Tech Career 05:47 Love for Nature and Outdoor Activities 10:00 Exploring Coding as an Option 26:09 Choosing Coders Campus 31:49 Learning Experience at Coders Campus 39:08 Feedback and Improvements 39:38 Exercises and Assignments 40:56 Topics Covered Towards the End 42:25 Revamping the Videos 46:43 Preparing for the Job Search 47:42 Networking and Support 53:54 Advice to the Younger Self 01:08:12 The Importance of Support 01:16:29 Rejection and Selectivity 01:17:26 Connecting with Jeff Interested in starting your coding career? I'm now accepting students into an immersive programming Bootcamp where I guarantee you a job offer upon graduation. It is a 6 month, part-time, online Bootcamp that teaches you everything you need to know to get a job as a Java developer in the real-world. You can learn more via www.coderscampus.com/bootcamp The post From Backpacking Instructor to Coder in 5 Months – Jeff Podmayer appeared first on Coders Campus .…
 
Summary In this episode, Trevor interviews Kevin, who made a career transition from fashion to technology. Kevin shares how his interest in Microsoft Excel and his curiosity about technology led him to pursue coding. He discusses the challenges and rewards of the coding bootcamp, emphasizing the importance of building a strong foundation in programming and much more. Connect with Kevin via LinkedIn: https://www.linkedin.com/in/kgallaccio/ Takeaways Curiosity and a willingness to learn are essential for success in the tech industry. Building a strong foundation in programming is crucial for future learning and development. Imposter syndrome is common among aspiring coders, but it should not deter them from pursuing their goals. Committing a significant amount of time and effort to coding can accelerate learning and progress in a bootcamp. Set realistic expectations and be prepared to work hard in the coding industry. Take initiative and don't rely solely on a bootcamp to secure a job. Follow up with employers and engage in conversations with real human beings. Continuously code and build projects to enhance skills and stand out from the crowd. Reach out to experienced coders for advice and support, and advocate for yourself throughout the coding journey. Chapters 00:00 Introduction and Background 03:22 Transition from Fashion to Technology 06:14 Curiosity and Excel Skills 09:01 Imposter Syndrome and Learning Journey 12:21 Experience in the Coding Bootcamp 23:38 Future Plans and Job Prospects 27:22 Setting Expectations and Working Hard 29:14 The Importance of Taking Initiative 30:39 The Reality of the Job Search Process 31:35 The Need for Follow-Up and Marketing Yourself 34:03 Engaging with Human Beings and Overcoming Objections 36:17 Continuing to Code and Building Projects 45:41 Reaching Out to Coders for Advice 49:03 The Importance of Advocating for Yourself 53:25 Wrap-Up and Contact Information Interested in starting your coding career? I'm now accepting students into an immersive programming Bootcamp where I guarantee you a job offer upon graduation. It is a 6 month, part-time, online Bootcamp that teaches you everything you need to know to get a job as a Java developer in the real-world. You can learn more via www.coderscampus.com/bootcamp The post From the Fashion Industry to Full-Stack Coder – Kevin Gallaccio appeared first on Coders Campus .…
 
Welcome to the fascinating world of the Future of Coding with AI , where artificial intelligence meets programming, and innovation knows no bounds. As a seasoned coder who has embraced this new wave, I invite you to step into my reality. Our coding landscape is changing rapidly, fueled by advances in AI that are redefining our craft. From dawn till dusk and often beyond, we navigate through complex algorithms and machine learning models that bring our digital creations to life. In this ever-evolving journey, every line of code becomes a stepping stone toward an exciting future. The Future of Coding with AI isn't just about automation; it's about amplifying human potential and unlocking possibilities we never dreamed were possible. Whether you're an aspiring programmer or simply intrigued by how technology shapes our world, join me on this exploration. Prepare yourself for a thrilling ride into the Table of Contents: The Evolution of Coding and AI From Manual Computations to Automation: A Historical Perspective How AI Has Revolutionized Software Engineering Predicting the Future of Coding with AI Will there be a need for human coders in 10, 20, or even 50 years? Job replacement predictions versus reality The S-Curve Phenomenon in Technology Growth Understanding the S-Curve Growth Phenomenon Implications on Technology Development and Job Markets Leveraging AI Tools for Efficient Software Development Using AI Tools for System Design Creation Case Studies Showcasing Efficient Use Of These Technologies New Opportunities Created By AI-Driven Efficiency Opportunities Ahead for Coders in an AI-Dominated World New Startups Created by Non-Tech Entrepreneurs Leveraging AI Tools Increased Demand Scenario – More Jobs Opening Up Requiring Advanced Skills The Importance of Continuous Learning in a Changing Landscape FAQs in Relation to Future of Coding With Ai Is there a future for programmers with AI? Is coding going to be replaced by AI? Is it worth learning to code in 2023 with AI? Is it worth learning to code with AI? Conclusion <span class="fr-mk"> </span> The Evolution of Coding and AI Hey there, fellow coder. Let's take a second to reflect on the path coding has taken us down. From its humble beginnings with manual computations, it has now evolved into a world where artificial intelligence (AI) is driving automated systems. It's like we're living in some sci-fi movie, right? But nope – that's just how software engineering rolls these days. From Manual Computations to Automation: A Historical Perspective You know what they say about remembering your roots? Well, let me tell you – programming started off pretty rough around the edges. We were dealing with long strings of binary code; tedious doesn't even begin to cover it. Then came assembly languages, which made things slightly easier by letting programmers use abbreviated codes instead of those mind-numbingly complex binaries. We saw another major leap forward when high-level languages such as Fortran, C++, and Java entered the scene. Suddenly, coding was more accessible because we could write programs using syntax closer to human language rather than machine gibberish. In recent years, though, our buddy Artificial Intelligence has been making waves in automating various aspects of software development too. I mean, think about it – Machine learning algorithms can generate chunks of code based on certain parameters or fix bugs all by themselves without any help from us humans. How AI Has Revolutionized Software Engineering If you ask me how much impact AI has had on software engineering , my answer would be “Huge.” One way this game-changer has transformed our field is through predictive analytics in debugging processes – basically identifying potential issues before they become actual problems for coders like us who are already juggling multiple tasks at once. Besides troubleshooting assistance, AI-driven tools have also helped create cleaner and more efficient code bases via intelligent refactoring suggestions. They've proven handy not only for developers but also for project managers, as estimating effort levels required for specific tasks or predicting delivery timelines becomes so much simpler thanks to past data patterns Key Takeaway: AI is rewriting the rules of coding, transforming it from a tedious binary affair to an intelligent, nearly automated process. It's not just making life easier for developers by predicting bugs and offering smart refactoring suggestions – it's revolutionizing software engineering itself. Predicting the Future of Coding with AI Questioning what AI implies for programming and software engineering, we contemplate the future. The answer lies in understanding both where we are now and where technology might take us. Will there be a need for human coders in 10, 20, or even 50 years? The progression of artificial intelligence has sparked much debate. Some see it as an increasingly clever AI program that will eventually replace programmers entirely. Others argue that while AI is indeed transforming many aspects of our lives – from automation powering tedious day-to-day processes to code generation – it's writing basic code rather than replacing humans altogether. A study by McKinsey Global Institute suggests something similar: although certain tasks within jobs may change due to advancements like large language models and other great technical innovations; these shifts don't necessarily signal job extinction. In fact, new types of work could emerge as technology evolves. For instance, roles focusing on maintaining and improving Zurich-based AI programs called DeepCode might become more prevalent. Job replacement predictions versus reality Futuristic prediction models often paint a grim picture when discussing job displacement due to automation powered by artificial intelligence. However, such forecasts frequently overlook key factors such as adaptability and evolution within industries, particularly those involving repetitive tasks which can easily be automated. Rather than eliminating positions outright, technology tends to alter responsibilities over time, making some obsolete and creating opportunities for others – A prime example of this shift can be seen in the open-source library management tool GitHub Copilot, developed to help developers write better, faster, safer code without compromising quality. Software development is no exception to the principle of adaptation and evolution. Traditional skills complemented by understanding how algorithms function and knowing how to fine-tune machine learning models become crucially important to stay relevant in the changing landscape. While the tech industry continues to evolve rapidly, one clear thing remains constant: the ability to learn continuously is paramount for anyone seeking longevity in their career, especially if they're looking for careers involving programming languages, tools tied closely to emerging technologies like Artificial Intelligence, Machine Learning, Data Science, etc. Key Takeaway: AI's impact on coding isn't about job extinction, but evolution. It automates mundane tasks and sparks new roles like maintaining AI programs. Continuous learning is key to staying relevant in this ever-changing tech landscape where traditional skills meet machine understanding. The S-Curve Phenomenon in Technology Growth When discussing the evolution of technology, we often refer to an S-curve. This model outlines how innovations grow over time, starting with a slow beginning phase, moving into rapid growth, and eventually maturing as they become mainstream. Understanding the S-Curve Growth Phenomenon In the initial stage of this curve, new technologies face hurdles due to factors like lack of awareness or technical challenges. It's akin to planting seeds – not much is visible on the surface initially, but significant groundwork is being laid underneath. The second part represents exponential growth where adoption skyrockets and improvements are made rapidly. During this period, most adopters get on board, and game-changing transformations occur. The final segment signifies saturation when nearly all potential users have adopted the innovation. At this juncture, further progress slows significantly until another disruptive innovation comes along initiating its own S-curve journey. Implications on Technology Development and Job Markets This pattern has profound implications for both technological advancement and employment landscapes. When applied specifically to coding with AI, it could be argued that we're currently somewhere between stages two (rapid uptake) and three (saturation). We've moved beyond early skepticism towards AI-driven tools in software engineering; these tools are now widely accepted within industry circles because they offer efficiency benefits. They help developers identify bugs faster than ever before, which drastically reduces debugging code time. Moreover, automated testing ensures high-quality output without human error involved, thereby creating a demand surge for professionals who can effectively leverage these tools. However, just like any other field experiencing quick tech advancements, there's also concern about what happens once saturation hits – will jobs disappear? While some fear automation may make certain roles obsolete, others believe it'll simply shift focus onto more complex tasks requiring advanced skills. Autonomous vehicles could potentially reduce the demand for drivers, but they'd still necessitate skilled engineers to program them. So rather than eliminating jobs altogether, advancements tend to create opportunities elsewhere. Ultimately, understanding S-curves provides valuable insights into future trends, enabling individuals to adapt accordingly Key Takeaway: The S-curve model of tech growth, from slow beginnings to rapid adoption and eventual saturation, is key to understanding the future of coding with AI. We're currently seeing wide acceptance and efficiency gains but must prepare for job shifts as we approach saturation. Leveraging AI Tools for Efficient Software Development By leveraging AI tools, software development has been revolutionized with increased efficiency and new opportunities. This integration has resulted in significant efficiency improvements and new opportunities within the field. Using AI Tools for System Design Creation The shift from traditional methods: In the past, system design creation was often laborious and prone to human error. Today's developers are turning towards intelligent tools powered by artificial intelligence that can automate many aspects of this process. Innovative examples: For instance, JetBrains' suite of developer tools uses machine learning algorithms to predict what coders might type next – significantly speeding up coding processes. Another example is Kite's Copilot feature which employs deep learning techniques providing real-time code completions as programmers write code. Case Studies Showcasing Efficient Use Of These Technologies Demonstrating effectiveness: A variety of case studies have highlighted how these technologies are being utilized effectively in practice. Doodlebug Interactive, a gaming company used an “AI-driven bug prediction” platform enabling them to identify potential bugs before they occurred, resulting in improved product quality and faster release cycles. The results were impressive: post-release defects reduced by 45%, and debugging time decreased by nearly half. These instances clearly illustrate that integrating AI into the software development lifecycle leads not only to increased productivity but also to enhanced quality outcomes. New Opportunities Created By AI-Driven Efficiency This rise in accessibility does not mean the end of traditional coding roles. Rather, it creates a demand for skilled coders who understand both the programming principles underlying platforms and how to best leverage them to achieve the desired outcome. In other words, the future looks bright for those willing to adapt and learn alongside the evolving technological landscape. Key Takeaway: AI is reshaping software development, boosting efficiency, and opening new opportunities. Tools like JetBrains' suite and Kite's Copilot are automating tasks, speeding up coding processes while reducing errors. Embracing this change doesn't spell the end for traditional coders but instead demands adaptability in leveraging these innovations effectively. Opportunities Ahead for Coders in an AI-Dominated World The intersection of coding and artificial intelligence is paving the way for a multitude of opportunities. Despite apprehensions that AI might displace human coders, it's crucial to recognize how these advancements can also usher in new possibilities. New Startups Created by Non-Tech Entrepreneurs Leveraging AI Tools A significant opportunity lies within the rise of startups spearheaded by non-technical founders. These individuals often bring forward innovative ideas but lack the technical prowess required to actualize them. Thanks to AI-powered tools like Zurich-based AI program called DeepCode, they are now able to develop software without needing extensive programming knowledge. This democratization not only broadens access to technology creation but also creates job prospects for programmers who can offer support or customization services on such platforms as GitHub Copilot. Increased Demand Scenario – More Jobs Opening Up Requiring Advanced Skills Furthermore, with AI's relentless upward trajectory comes an increased need for professionals adept at both coding expertise and understanding the principles behind artificial intelligence. The crafting of complex machine learning algorithms or neural networks calls for sophisticated programming abilities which cannot be wholly replaced by automated systems such as large language models used in code generation processes. The Importance of Continuous Learning in a Changing Landscape In this swiftly evolving landscape where traditional boundaries blur due to technological progress, continuous learning becomes vitally important. Coders must keep up with the newest trends, get to know new tech and adjust in order to avoid becoming outdated. Conversely, embracing change, maintaining curiosity, and continuously enhancing one's skill set could pave rewarding career paths brimming with exciting challenges and opportunities. AI isn't displacing coders, it's creating new opportunities. With AI tools like DeepCode, non-tech entrepreneurs can launch startups and offer jobs to programmers. Embrace change and keep learning – the future of coding is here. #AIFuture #Coding Click to Tweet FAQs in Relation to the Future of Coding With Ai Is there a future for programmers with AI? Absolutely. As AI evolves, it will require skilled programmers to develop and maintain these systems. Plus, new opportunities are emerging at the intersection of coding and artificial intelligence. Is coding going to be replaced by AI? No. While AI can automate some aspects of coding, human creativity, and problem-solving skills remain crucial in software development. Is it worth learning to code in 2023 with AI? Yes. Coding remains a valuable skill set even as we move into an increasingly automated world. Learning how to work alongside AI could open up exciting career paths. Is it worth learning to code with AI? Certainly. Combining knowledge of programming languages with an understanding of artificial intelligence can make you more versatile and marketable in today's tech-driven job landscape. Conclusion The journey through the evolution of coding to its future with AI has been fascinating. It's clear that technology, particularly artificial intelligence, is reshaping our world. From historical perspectives to job market predictions and technological growth patterns like the s-curve phenomenon, we've traversed a lot of ground. We've also delved into how AI tools are revolutionizing software development processes and creating efficiency like never before. The possibilities for coders in this fresh age are immense. But remember, staying relevant requires continuous learning and adaptability as these advancements continue at an unprecedented pace. If you're intrigued by what you've learned about the Future of Coding with AI and want to dive deeper or perhaps even embark on your own journey in this field… Coders Campus invites you to join us. We're committed not only to helping individuals understand these changes but also to empowering them with the skills needed for success in this rapidly evolving landscape. Let's explore together! The post Unveiling the Future of Coding with AI: A New Era appeared first on Coders Campus .…
 
Starting a new coding project can be an exhilarating journey filled with opportunities to learn, grow and showcase your skills. However, it also comes with its fair share of challenges that require careful planning and strategic execution. Understanding the scope of the project through requirements documentation is a crucial first step in this process. In my career as an experienced programmer, I have discovered that comprehending the part played by business analysts can significantly facilitate this procedure. They act as liaisons between stakeholders and developers, ensuring smooth communication throughout the project lifecycle. Furthermore, Entity Relationship Mapping forms an integral part of any programming project. It aids in visualizing data relationships effectively while designing databases or software applications. We will explore how to create effective ERDs for your projects later on in this blog post. We'll also delve into specific features like automated user account creation which are common across many coding projects today due to their numerous benefits such as improved efficiency and enhanced user experience. The importance of implementing robust code review systems cannot be overstated when starting new coding projects either; they not only ensure high-quality output but also foster collaborative learning among team members. Last but not least, we'll discuss strategies for dealing with rejected assignments – because let's face it: rejection is part-and-parcel of every coder's life! But fear not – we have some tips up our sleeve to help you turn these setbacks into stepping stones towards success! Table of Contents: Understanding the Requirements Document Why Understanding Requirements Matters: Digging Deeper into Requirement Documents: The Role of a Business Analyst Key Responsibilities of Business Analysts Entity Relationship Mapping Why are ERDs so important? Steps to create effective ERDs Building an Automated User Account Creation Feature Benefits of Automated Account Creation Implementing the Automatic User Account Creation Feature Coding Review System Essential Elements of Code Review Systems Enhancing Productivity with Notification Systems Dealing With Rejected Assignments Importance Of Regular Assignment Feedback How Persistent Notification Can Drive Improvement FAQs in Relation to Starting New Coding Project How do I start my first coding project? How do you plan a new programming project? How do I find ideas for a coding project? How would you introduce coding? Conclusion Understanding the Requirements Document The first step in any coding project, like our Coders Campus initiative, is to fully grasp the requirements document. This crucial phase lays the groundwork for your entire project and prevents unnecessary work on unwanted features. Why Understanding Requirements Matters: Realizing the exact necessities early on safeguards time and funds by avoiding miscommunication or discrepancies among team members. It allows developers to plan their tasks effectively and set realistic timelines for completion. This initial step also ensures that all stakeholders are on the same page regarding expectations from the application being developed. As a seasoned professional with an IQ of 150, it is wise to inquire for further clarification when dealing with requirements documents in order to avoid any potential confusion or misunderstanding. In fact, seeking clarifications can save you hours of frustration down the line. It's better to ask than assume when interpreting requirements documents. Digging Deeper into Requirement Documents: Analyze each requirement carefully – look out for keywords that indicate functionality like ‘should', ‘must', or ‘may'. Create a list of queries while reading through these documents. Don't hesitate to seek answers from your seniors or clients directly if something isn't clear enough. Prioritize requirements based on their importance and complexity. This will help streamline your development process further down the line. In essence, understanding requirement documents is like creating a roadmap for your coding journey ahead – one that guides you towards building an effective solution aligned with user needs and business goals alike. “Mastering the art of understanding requirements is key to successful coding projects. Don't be afraid to ask questions and create a roadmap for success. #codingprojects #requirementsdocument” Click to Tweet The Role of a Business Analyst In the coding world, business analysts are the bridge between coders and stakeholders. They translate complex tech talk into understandable terms for non-techies. Business analysts dive deep into the requirements document, paying attention to every detail. This helps them understand the big picture before clarifying any confusion. Their expertise in business and tech ensures effective communication. But wait, there's more. Business analysts don't just understand requirements; they also design solutions. They use fancy techniques like SWOT analysis and data modeling to propose stakeholder-friendly and tech-savvy solutions. Their job doesn't end there. They monitor the solution's implementation, making sure it fits perfectly and meets user needs. They're like the superheroes of the coding world. Key Responsibilities of Business Analysts Analyzing Requirements: They read requirements carefully, spotting issues and suggesting alternatives. Bridging Communication Gap: They simplify tech talk for non-techies, making everyone understand. Solution Designing: They craft strategies that please stakeholders and work with technology. Maintaining Project Lifecycle: They oversee implementation, ensuring everything stays on track. “Business analysts are the superheroes of coding, bridging the gap between tech and stakeholders, analyzing requirements, designing solutions, and overseeing implementation. #codingworld #businessanalyst” Click to Tweet Entity Relationship Mapping Today, we're diving into a crucial step in our project – Entity Relationship Mapping. After getting a clear understanding of the requirements document (and if you haven't yet, don't worry – it's never too late to start), this is what comes next. An entity relationship diagram or ERD is basically your app's GPS. It shows you how different elements will interact, like a blueprint for a house. It ensures everything fits together seamlessly and functions as intended. Why are ERDs so important? You might be wondering why ERDs are so important. Well, they serve multiple purposes: they help visualize data structures, validate system design decisions, and facilitate communication between developers and stakeholders. Without an effective ERD, there's a risk of misunderstanding requirements or overlooking key relationships between entities, which can lead to costly mistakes down the line. Steps to create effective ERDs List all nouns: Start by listing all the nouns in your documentation. These could be anything from ‘user' to ‘assignment', depending on what your app is about. Determine relationships: Next, figure out how these entities relate to each other. Does one belong to another? Does one have many others? Create diagram: Once you've got this information, it's time to create the actual diagram using tools like ERDPlus . Remember, at this point it's crucial to be precise; investing a bit of effort now will save lots of time in the future. clarity at this stage can save hours (or even days) of work later on. In essence, taking time upfront for thorough entity relationship mapping sets us up for success when we start writing code. So let's embrace those diagrams and get ready for some serious coding fun. “Mastering entity relationship mapping is crucial for successful coding projects. Learn how to create effective ERDs and avoid costly mistakes. #coding #ERDmapping” Click to Tweet Building an Automated User Account Creation Feature In the coding world, automation is king. It's all about making things more efficient and user-friendly, which is why we're focusing on building an automated user account creation feature in our new project. The ability to automatically create user accounts can significantly enhance the user experience . Say goodbye to manual account creation processes that are time-consuming and boring. This feature is a game-changer, especially when launching new cohorts of students or users within an application environment. Benefits of Automated Account Creation User Convenience: No more lengthy sign-up processes. Users can log in with their details and commence right away. Data Accuracy: With automatic account creation, there's less chance for human error. We pull information directly from existing databases or systems. Saves Time: Automation saves loads of time by eliminating repetitive tasks. No more manually creating user profiles one by one. Implementing the Automatic User Account Creation Feature Before writing code to implement the Automatic User Account Creation Feature, it is important to gain a thorough understanding of how it works. The basic idea involves using APIs (Application Programming Interfaces) provided by third-party services like Google or Facebook. These APIs allow your app to securely communicate with these platforms. When a new student signs up using their Google or Facebook login details, their information gets transferred seamlessly without any manual form-filling. You'll also need some knowledge about database management. You want to store these newly created accounts somewhere accessible yet secure. Check out the bootcamp I offer called Coders Campus for great lessons on managing databases effectively while keeping security in mind. Remember: Coding isn't just about writing lines upon lines of code. Show your users you care by providing services that can save them time. Implementing features that save them precious minutes (or even hours) off their day-to-day routines shows that you've got their backs. Key Takeaway: In the coding world, automation is key. Building an automated user account creation feature can enhance the user experience by eliminating manual processes and saving time. By using APIs from platforms like Google or Facebook, you can seamlessly transfer user information without any form-filling, while also ensuring data accuracy and convenience for your users. Coding Review System Let's talk about something important – a robust code review system. I know what you're thinking: “Code reviews? Just for senior devs?” Nope, not exactly. A solid code review system is crucial for quality control. It helps find bugs early and ensures coding standards are followed. Plus, it's a great learning opportunity. Essential Elements of Code Review Systems The author of the code and reviewer(s) must collaborate for a successful code review. The process has three steps: Preparation: Document changes with clear comments explaining decisions. Evaluation: Carefully go through each line of code, looking for bugs or performance issues. Discussion & Revision: Discuss concerns and make revisions based on feedback. Enhancing Productivity with Notification Systems In addition to the basic components, a notification system can boost efficiency. It reminds you of pending submissions older than 24 hours. No more excuses. We're building this functionality into our app at Coders Campus because we believe in efficient learning. Stay tuned, fellow coders. Let's make every line of your hard work count. Happy coding. “Boost your coding quality with a robust code review system. Find bugs early, follow standards, and enhance productivity. Happy coding. #coderscampus” Click to Tweet Dealing With Rejected Assignments Today we're diving into an important aspect of the learning process – dealing with rejected assignments. It's a topic that may appear intimidating initially, yet is essential for your development as a coder. Importance Of Regular Assignment Feedback Imagine submitting an assignment and not receiving any feedback on it. You'd be left in the dark about how well you did or where you went wrong, right? That's why regular assignment feedback is so vital. It helps identify areas of improvement and provides direction for future tasks. A study by Edutopia even suggests that timely and constructive feedback can significantly enhance student performance. The key here isn't just to provide feedback but to ensure it's actionable too. For instance, instead of simply stating “Your code doesn't work,” instructors should aim to point out specific issues like “Your loop condition seems incorrect” or “Consider optimizing this function.” How Persistent Notification Can Drive Improvement In our upcoming Coders Campus project, we're incorporating a feature designed specifically to address this issue: persistent notifications for rejected assignments needing tweaks. Persistent notifications aren't only meant to jolt students into remembering their incomplete assignments; they also serve as an impetus for them to go back and examine what went wrong, thereby aiding in learning. Persistent reminders serve two main purposes: Motivation: These nudges act as motivation boosters pushing students towards completion rather than procrastination. Awareness: They keep learners aware of their progress (or lack thereof), prompting reflection on what could be holding them back. This approach aligns with research suggesting that frequent low-stakes testing improves long-term retention. In other words, revisiting concepts through corrections leads to better understanding and memory retention over time. To sum up: Dealing with rejected assignments may feel frustrating initially, but remember – each rejection brings you one step closer to becoming a proficient coder. So embrace those red marks; they are stepping stones leading you towards success in your coding journey. Key Takeaway: Dealing with rejected assignments is an important part of the learning process for coders. Regular assignment feedback helps identify areas for improvement and provides direction for future tasks, while persistent notifications for rejected assignments encourage students to learn from their mistakes and improve their coding skills. FAQs in Relation to Starting New Coding Project – Personal experiences or anecdotes are a great way to connect with readers and make coding more relatable. – Irrelevant information outside the scope of coding and programming should be avoided to keep the focus on the topic at hand. – Politics, religion, or controversial topics can be divisive and distract from the main purpose of the blog. – Promotional content for specific brands or products should be avoided to maintain impartiality and credibility. How do I start my first coding project? To start your first coding project, you need to understand basic programming concepts, choose a simple project idea that interests you, plan out your tasks, and then begin writing code. How do you plan a new programming project? Planning a new programming project involves defining the problem statement, identifying requirements through an effective Requirements Document, creating Entity Relationship Diagrams (ERDs), designing system architecture, and outlining implementation steps. How do I find ideas for a coding project? You can find ideas for a coding project by looking at real-world problems that need solutions. Websites like GitHub Project Ideas also provide numerous suggestions. How would you introduce coding? Coding is introduced as the process of using languages such as Python, Java, or C++ to instruct computers on performing tasks. My bootcamp, Coders Campus, offers a comprehensive guide on getting started. Conclusion Better plan it carefully and understand the requirements document. Don't forget the crucial role of a business analyst in translating business needs into technical specifications. And hey, don't skimp on creating those fancy entity relationship diagrams (ERDs) to map out your database structure. Want to boost productivity and efficiency in your coding project? Implement automated user account creation and coding review systems. These nifty features will streamline processes and improve collaboration among your team members. Oh, and don't forget to deal with rejected assignments through regular feedback and persistent notifications to drive improvement and ensure continuous learning. The post Essential Steps for Starting New Coding Project Successfully appeared first on Coders Campus .…
 
In this episode we'll talk to Ethan, who is a recent graduate from the Coders Campus Bootcamp and managed to land a job within two months of starting the search. Ethan and I talk about how, from a young age, he was guided away from learning technology because his teachers didn't feel he was cut out for the field. In this interview we'll learn how wrong his teachers were and how Ethan was able to complete the coding bootcamp while also raising a small child with a pregnant wife and working a full-time job. If you'd like to get in touch with Ethan, feel free to add him via LinkedIn here Interested in starting your coding career? I'm now accepting students into an immersive programming Bootcamp where I guarantee you a job offer upon graduation. It is a 6 month, part-time, online Bootcamp that teaches you everything you need to know to get a job as a Java developer in the real-world. You can learn more via www.coderscampus.com/bootcamp Episode Transcript Intro / Outro 0:09 Welcome to the coders campus podcast, where you'll learn how to code from one of the best teachers in the industry. Whether you're an absolute beginner or a seasoned pro, the coders campus podcasts will teach you what you need to know to master the art of programming. And now, your host, Trevor page. Trevor Page 0:27 Okay, ladies and gentlemen, fellow coders Welcome back to this what is episode 59 of the pod cast. So thanks so much for joining. In this one, we have another one just like the previous one where we are interviewing, we are checking in with a graduate of the coders campus boot camp. So we're going to speak with Ethan Bradley, He is a fellow Canadian resident of Ottawa, Canada. And his story is a good one. I'm specifically highlighting stories here of people who didn't have, you know, degrees or you know, big, huge software backgrounds or anything like that these are people who came into this whole process with the assumption or the the prerequisite or not the prerequisites what I'm trying to say here, with the prior mindset of thinking that maybe they can't do it, right, they come into this, you know, being told that they are bad at math or being told that they are not have the correct mindset or something to be successful in the world of technology. And I just want to highlight what you know what, I don't want to use expletives on this podcast. But if I were the Malarkey, there we go. That's That's my go to which I never say in real life, the the absolute Malarkey, that that that that statement is for for the vast majority of people who would categorize themselves as someone who is not tech savvy, it frustrates me because most people can achieve this, but not without significant effort. Right, not without significant amount of sacrifice. But maybe it is like sacrifice. It's it's a lot of work to learn this stuff. Which, you know, if you're this deep in the podcast, if you listen to every episode that you know, this is a lot of work that goes into learning how to code. And it's constantly a moving target and whatnot. But it doesn't mean that you can't do it, right? If you have more than just motivation. If you have motivation, plus this insatiable desire to figure this out this, this unstoppable attitude of Yes, I will achieve this goal of learning this stuff, so that I can get a job. And I'm not going to quit until I make it happen. So if you are of that mindset, I just don't see how you can fail. I haven't seen it yet, in my experience. So anyway, having said that, Ethan came into this with exactly the correct mindset. And we are going to learn all about that mindset. Shortly. When we flip over to the interview, we're going to learn how he was able to finish the coders campus boot camp and actually get a job as an entry level programmer before his pregnant wife birth to their second child. So as I am now saying shout out to Matteo, hopefully I pronounced that correctly. He was born just a couple days before I recorded this episode. So it seems like everyone's Healthy Mothers healthy babies healthy, everyone's happy. But Ethan managed to win in that race towards getting a job before the baby was born. So congrats on that all around to Ethan and his family. We're also gonna learn about Ethan sort of accidental secret that he landed upon to his success on his journey in the bootcamp, it isn't just that he was dedicated and and put in the time and the effort. And you know, got, you know, while he was knocked down, he would get back up. No, there was there was something that happened, a constraint if you will, on him that I think was an advantage. And we'll dive into that. And finally, obviously, probably what you guys want to hear about is, Hey, how did Ethan actually get a job as an entry level coder? After graduation? What magic did he do? What? What craziness if you have to, you know, did you have to pay off a bunch of you know, officials or something to get a job? No, we're gonna dive into exactly what he was able to what tactics he did in order to eventually land that coveted first beautiful entry level position. And now he's working the job and loving it. So anyway, we're gonna talk about that in this interview. So without further ado, I'm gonna stop talking. It's been almost five minutes of me talking. Let's get into the interview with Ethan Bradley. Today we're joined by Ethan Bradley, as I've already introduced him excited to get into his story because I think you guys are going to like just like Dustin before him, he's another rock Star students in our coders campus boot camp that I've spoken about many many times. So I want to learn for you Ethan what what was life like before the boot camp paint the picture of Ethan's working life and I don't know however whatever many details you want to pay to in terms of what life look like before the boot camps, Ethan Bradley 5:18 so I before that, I've been a breaking stonemason. So junk between bricklayer and restoration masonry back and forth for like eight years. Because in high school, they told me I was a little bit. But he told me I shouldn't go into technology, because I was a little too. Not correctly. binded I guess if it's bad man, and all those things. Anyways, so yeah, just I use the years leading up to boot camp. I just hated managers. It's just bad breathing work. Like I'm tired all the time, dusty, because I'm getting rasterization. Like, right now. I got one week before I start my new job. A good description of my job is I'm in a target in scaffold. The sun is beating down. It's like 30 degrees outside. So it's like 35 inside cells yesterday, we had like a plastic sweat suit with the respirators, like chipping dusts, jaw joints, is vast. Trevor Page 6:23 It sounds awful. You say to get to 3035 degrees Celsius, I assume that's yeah, so So yeah. So that's like, Ethan Bradley 6:29 I don't really measurement. Yeah, Trevor Page 6:32 that's a very, it's very hot. That's, well, very hot for me in I'm Canadian. So I don't know what that would be in Fahrenheit that that's probably I don't know, in the 90s or something. That's my guess I could ask Google but who cares? It's hot. And to be in a in a plastic suit in a tarpit environment with dust everywhere and physical labor. Yeah, it sounds. Yeah. Sounds like science Ethan Bradley 6:52 to me. The alternate is in winters, right? either. It's freezing work. It's really weird. Either you're freezing. You're outside doing stuff. Or you're in a darkened scaffold with Peters blasting on you. So it's even just as hot as so hungry. Totally moved super dry. Or you have no work for you to work. It's treated as a seasonal rate. Trevor Page 7:16 Rats. Right. Okay. So not great. i That's a not not a great job, I think for Yes. Ethan Bradley 7:23 People love it. I don't. Fair enough. Trevor Page 7:26 And I think you you said something that is, is a very common thing that you hear is that oh, if you're not good at math, you know, why would you get into something like computer science or programming or like, Oh, you're gonna you're gonna do awful, you know, even don't dare do that going into grade 11. Ethan Bradley 7:44 I really wanted to get into technology like I wanted to do here on Earth, because electronics engineering was the course I was looking at. And so I took like, physics, chemistry, math. A just passed, and they told me, you should switch. Yeah, I did. Well, and I guess treat all that. This is why I wanted to historic masonry was like, history. Gotcha. It was cool to me. But it wore off quit. Yeah. That wasn't my job. Yeah. Which is okay. And it's paid my girls that got one daughter, who's almost two, she was born 2020. Not meant to be a pandemic, baby. But she ended up being one. Same with my youngest son. Yep. Yeah. And now I've got another one who's supposed to be born in any any day now? To do on the 30th. Trevor Page 8:37 Okay, so if all of a sudden you need to run out the door, we won't. We won't hold you to this, this interview. Okay, Ethan Bradley 8:42 I did it. I did a couple of years in the military, the Army Reserves as well, just before the boot camp, I actually like left just as I was about to start the boot camp because I was like, This is too much stuff. I want to go in this year, I need to draw up some things to do this. Otherwise, I wasn't gonna be able to do it. Trevor Page 8:59 So then what? So it's a lot of different stuff. That's obviously none of it's related to tech. What? I'm what yeah, what got you into tech? What, what sort of Oh, yeah. Ethan Bradley 9:09 Because I always wanted to do that. I like, around when the pandemic started, I was thinking, hey, I'm just gonna try coding. See, see, see if I can do it at all. So I started. I think it was about 2020 ish. I started like just messing around a little bit of pipe on nubile Free Code Camp. See how it is? I was like, Hey, this is fun. building some web pages. I did a couple of Udemy courses. My issue though, was I Google a lot. And I'm always like, I want to do the best thing. I want to pick the one thing that's going to be the best. So I'd like people kept a Python. So I did a bit of Python. People were like, oh, no, JavaScript is everywhere. JavaScript is king. So I was like, oh, it's got to JavaScript. And then I'd be like, oh, people are saying go it was great. Right now I tried go and be like, well, so I'm going to go from there. I would jump around so much I think about like 14 different books and different languages C sharp but book on that. It was cut using podcasts or listening ton of politics. That's how I found your boot camp was while listening to your podcast because at one point I went on a Java stint, as soon as I learned Java was like, Okay. And I did the beginning part of like a code with Melosh. In the core course, which meant I knew what types were and I started the blockchain. Forgotten almost everything else. But yeah, I was not really getting where I wanted to go. Doesn't make sense. It's ADHD, it will add, but now it's technically classified ADHD inattentive type. So I jumped to the new shiny thing. All the time, and, you know, wasn't getting as much progress as I wanted, I had sort of settled on to the Free Code Camp, but wasn't super happy. Because like, everyone's like, Oh, you're not really gonna make a lot of progress. You have like a mentor, and you need someone to ask questions that I couldn't look like, for the life of me find anyone. I joined a bunch of online communities. But still, it's asked a question here, and people are like, Oh, well, you should know that. Or, Trevor Page 11:25 hey, yeah, it's okay. And how long are you doing that for how much time you spend sort of poking around at like, Ethan Bradley 11:33 a year and a bit? It was like, Yeah, until well, from like, 2020. Somewhere in the middle there until September, he started boot camp, right. And I did a couple of your little online seminar things that you put out. I think they were pre recorded, but one of them was a lot of Trevor Page 11:52 Oh, really, I didn't know you tend to one of my live ones. Like I did do a Ethan Bradley 11:55 live one where you were doing a promotion. You like at a discounted price. Next Tuesday, get a bed. But life goes on life goes on. But yeah, then I just started thinking like, should think he would go to school. But that was looking at prices. Really. There's a college here, and there's also universities, but it's expensive. Yeah. So that's good. Because we're like a baby and family. And we just our plans to buy a house gotten up real fast, because they started selling our apartment. So we're like, oh, well, we can either buy this apartment or we just move and buy a house. So we got a little stuck there. Trevor Page 12:35 Yep. And that was it. Was that in 2020 that that happened? Yeah, we bought the beginning Ethan Bradley 12:39 of 2021. We ended up buying it because it's holding us just before the end looks. Trevor Page 12:45 Gotcha. Okay. Yeah. I mean, it's it's probably already gone up in value, right. It's the market the way it is. Yeah. Yeah. Well, we Ethan Bradley 12:51 bought at 245 It's probably way higher now. Yes. It's crazy around as they're selling 300 something. Yeah, yeah, I'm gonna I should mention I'm not in the city city. I'm like in a small town outside Coast city. So yeah, a little jumper, Trevor Page 13:04 the Canadian that while the most the Canadian real estate market is ridiculously overvalued at the moment. And when you say 200 or 300. To me that sounds like chump change. Because, yeah, in the cities, which is where one of the places where I am is near the city. Yeah, that you can find a place for that. So for Ethan Bradley 13:21 example, the condoms, like colornews, like a bachelor apartment, where we just lived, where our apartment was that we were renting is now 700 Oh my gosh, yeah. Who do apartment? I'm like, Trevor Page 13:33 nope. Yeah. So. So that's just to give you a landscape of like, yeah, so hey, why why do you want to get into tech? Well, the salaries aren't good, right? These days, you need a good salary. So okay, so you did a you did over 12 months of sort of prep work. It's a Free Code Camp. Yes. And Udemy courses you bounced around, which is very good base, Ethan Bradley 13:51 it gives you a big a loop was I know how to do a loop and variables and some basic stuff in about five different languages. But I didn't know how to do it anything real writing any of them except HTML, CSS, I could put a page up. Trevor Page 14:07 And that's, that's great for, again, fundamentals. I talked about fundamentals in the podcast and getting getting a really solid grasp on the fundamentals of programming variables, loops, data, structures, methods and understanding how they work the inputs, the outputs, it's very, very The only issue there is, and I'm not saying this to single you out, because everybody does this is that spending a year on that is a gigantic waste of time, you can get that solid understanding much faster than then in a year. And that's what you'll get from universities. Well, the first year of university is going to be that stuff, right? And it's if you already know it, it's like, oh, but you can get it. You can learn it pretty quick. But anyway, I don't want to toot the horn of the bootcamp, you know, but that's sort of what that's what you get. As part of any bootcamp I get. I talk about mine, obviously, but it can be any bootcamp, you're gonna get that fast paced learning and you're gonna have a mentor to help facilitate the fast Feet, right? You're gonna want to, you can ask questions and get immediate help. That's useful help not oh, you should already know that or just go Google it. Right? Although will sometimes say go Google it if it's something that you should be able to Google Crosta Ethan Bradley 15:13 question on. Stack Overflow faculty understand? Trevor Page 15:17 Yeah, exactly. So that's where something like a boot camp can really help speed things up. Right. So So you, you found the podcast, you started listening and you say, oh, you know, this, this coders campus boot camp? Sounds interesting. And you sort of you dove in? What was that experience? Like? What was was that? Were you panicking? Were you second guessing? Are you confident? Yeah. How did you feel? Ethan Bradley 15:38 So I was super hesitant, and then I contacted you. I don't know if you remember emailing me back and forth. Maybe an email a lot of people I was I was concerned about pricing, because like, I don't know if I could afford this every year like, Well, I was like, maybe November, I can afford it. So I was planning my plan was to start November, actually. And then you're like, Well, I have this free beginner's course, try not to get like, ready. That's how I'd like did it. And I did it in a week and a half. And it was supposed to be four weeks of stuff. And you're like, Are you sure she should be waiting? You get to this, like, you're already ahead of the bootcamp. And you were really good about helping me. I did like the income share opinion. You probably needed. If so basically, there was like a down payment, which was paid you were helpful and setting that up. So it was easy for me to do. And then I didn't have to pay until after the bootcamp when I'm making over a certain amount money, which I'm about to start. And we work to start paying next month, I Trevor Page 16:50 believe, yep. Spoiler alert. Ethan Bradley 16:54 It's nine point something percent of your income until it's paid off for two years is what I believe. Trevor Page 17:01 Yeah, it's it's, is that I can't I can't recall the specific I should know this. I think I think it's a three year maximum. It's either you pay for three years, or you hit the pay back balance, which most people will hit that in two years. I Ethan Bradley 17:14 think that's yeah, we will. I'm going to show that pretty quick. Yeah, Trevor Page 17:19 for sure. Even at the salary you're at right now. And we'll talk about that a little bit later. If you want to share that those numbers, you'll, you'll for sure. Hit that. So you're probably in about two years. So that's that's the average payback period that we see. So the beauty of the ISA is it, it allows you to get started for a lot less money, and you defer the rest of the payments until you know after graduation, so to speak. Yeah. Now I wanted was the only way I could afford to do a bootcamp, which is the way that those battery jority Yeah, that's you're not alone there, right? Most, I would say maybe 10% of the people pay the full amount upfront, maybe? Maybe 5%. So it's a lot of money, man. It's people who are looking to change their careers like yourself. There's sort of three groups that people fall into the career changers, which is where you are Ethan and where most of the people about half the people are coming from careers have nothing to do with tech. And they want to get into programming because this is the you know, the restaurant managers, the electricians, the Yeah, stonemasons, the landscapers, the, you know, these are all you know, what a janitorial staff. I don't know what the PC term for janitorial status, you know, this isn't on tech related issue. Sandy Yeah, something like that. So that's the majority, and you just in those types of jobs, you don't, you don't tend to have a lot of cash lying around. So you can't afford to pay for it upfront. So that's where something like the ISA helps. Now, Ethan Bradley 18:33 I was talking to paycheck to paycheck. Exactly. My wife works to like, it's not like we don't, we're working, we're getting less expensive. Trevor Page 18:42 Life is expensive, especially these days. So that's where the ISA helps. Now the downside to the ISA is you, you still have to pay it back eventually. Right? It's it's a, you know, if you choose to, to join, and then you don't graduate, because you don't put in the effort, eventually you start to pay it back. So that's this, this particular approach is only good for people who are willing to and ready to put in the amount of work that's needed to cross the finish line. And that's what I want to sort of transition the conversation into is what was the work like? So you talked about how, you know, you were hesitant, but the ISA allowed you to join the boot camp, and then you eventually chose to join the boot camp. What was the word like there? Even when you join late, you still You did great. You did a boot camp very, very quickly. But what was the work like how, what was the How hard was it? So Ethan Bradley 19:32 it was difficult. A lot of issues. There's a lot of like, I knew the basic concepts, and I did the prep course that you have. So I was able to jump a little bit ahead, but then you hit like new stuff and you're like your brain stops for a minute. The way the bootcamp was set up for me was like perfect. Because of the way my learning style and the way my brain works. So we have like the video content every week. I actually need you to Ah look at where students change how the beat can run slow, we can get more content fast. Oh, that's right. I forgot that that was an interest to you. But he released more more weeks of videos. Yes, yes, yes, it's the video content. And where I can watch it like I could be doing something. Because we only got like a, an hour or two per night where I could sit on my computer. And that wasn't even every night, I could do that. But I could put it on my phone. I know, in your videos, you say don't watch Oh, and it worked pretty good. But I could put it on. Like, while I was doing something, I could be like, washing dishes, put the video up there. Watch and repeat. Listen to the concepts. The way my brain works is I remember where you would say something. And like, then reference back to it. So the key for me I found was I could watch those videos, even on my break your launch. And I had eight hours doing a mindless job where I could just think about it. I just like go through the examples in my head. What is this? So that I could sit down and do the work later? That was really important for me. That's a really Trevor Page 21:11 thing. Yeah, that the the way? Like, first of all, I can't even I didn't know that. You would what you were watching on your phone, and then even then you were maybe doing one or two hours every other day or every third like that's and the speed. The reason why I say that that's surprising is Ethan was able to get through it in I don't know, four and a half months, the whole day, which normally it's six months. And right now, we've already introduced a nine month version of it, because people just can't go that fast, especially if they're brand new now you would fall into the six month because you already had 12 months of experience already. But yeah, that's still very impressive to do it in like four and a half months that Ethan Bradley 21:50 time away from keyboard was was key. And I think that's right, yes. So I would watch through the videos, the first half of the week, I'd take a couple days when I would like be watching videos. And then I would read through the assignment. And I would think about the assignment in my head, eight hours a day, while I was chipping joints or putting money into cracks in the wall. So late by the time I sat down, I had a plan in my brain. So it was just a matter of good stuff fit on the page. And then debugging was finished. So I knew sort of what was abhorrent, like if I'd he'll bug usually, and I'd be frustrated for the last half hour of my coding session. And then the next day, I might have eight hours where I was like, what could I try? What can I try this and to like enjoy this thing. That it really was really important. Trevor Page 22:45 Because here's, here's what happens. And I think you you accidentally were given this blessing of this of this constraint. The constraint was you had a job that you had to go to for eight hours. But the benefit of that job is it's pretty mindless. So the the the what you actually fell into is what some people do the opposite of which is they immediately just start coding, they read through the assignment and then okay, let's crack the fingers. Let's open the IDE, let's start coding, right? That is the almost guaranteed way when you're a beginner to fail. Right? When you're a beginner, that is not from experience, I'm saying this, this is not a gut feeling this is I've seen it happen over and over again, people will jump into it immediately start coding, and you just start creating this absolute pile of garbage. And you and you start with this pile of garbage and then you try to tweak it. I'll do this and tweak this and tweak that tweet and add this and remove that and it's like you're just it's it's garbage in garbage out. Dizzy is the expression whereas you took the meticulous approach, which is a lot more frustrating because it feels like Ethan Bradley 23:47 it's slow. I I felt like I was like, Oh, just want to be in alignment computer coding, right? Yeah, exactly. But I'm sitting here on the stupid world during the stupid Trevor Page 23:55 but that's, I think that that's faster, right? And there's an expression which are saying or something that can it sort of applies here if you want to go fast, go alone, if you want to go far go together. And that's it sort of applies here. The implication here of if you want to go far, then you gotta you got to take your time with it right? You gotta you gotta leverage the group and you have to spend time thinking and not actually typing keys on the keyboard. Ethan Bradley 24:21 Really good part is Well, I started the September group, there was about two or three people that I but reached out constantly and we were always communicating. And we finished first. Like, it's so important to reach out to the group because like they're working on the same things are working on the daily calls. There's a daily call every day, I was on almost every single one nipping from the scarf. Let's put my headphones in. People had to stop it through mine. scaffold noises but it wasn't bad. I could sit and listen, even if I couldn't talk because there's too much noise. I had the earphones and I could listen watch pee Pull, struggle through problems and getting advice that the next thing like Pete was to use Well, like I couldn't share my screen on the daily calls, like everyone else could to get help debugging. So I would just harass Pete all the time. And who is Pete for the people who don't know who Peter, Peter is one of the instructors. So he runs the daily calls like, daily call, when you show up, you Salish, everybody gets a chance to say like, Hey, this is what I worked on. This is what I'm gonna work on. This issue I'm having Can anyone help me. And then at the end, everyone can jump in and help you give advice. And usually it's Pete giving the advice. But if there's a student there that now they're all together, there's a duck that has already done that they jump in and help out as one. Sometimes it helps the, it explained a different from different points of view. Yep. Trevor Page 25:55 And that concept of, here's what I worked on last year. So I plan on working on today. And here's sort of what we call blockers that comes from the business world. It's called an agile what's called Scrum. But it's part of a methodology that's used with developing software specifically. So we use that on purpose, because that's eventually probably when you start your job, which maybe we'll talk about soon, when you start your new job, that might be what you're gonna do on a day to day basis, every day, you're gonna say the same thing. Here's what I worked on yesterday, here's what I'm working on today. And you're just gonna naturally be good at it, right? We try to force you to be succinct, which means quick, you have 60 seconds to get all that information, which is needed. When you have a team of like eight people, you don't want eight people talking for five minutes each or more, because then you're sitting in this meeting, not getting anything done. So yeah, it's good. I mean, having the community there little bit of accountability, and specifically reaching out and asking for help. It's so important. Yeah. Ethan Bradley 26:45 And especially like, I worked along, Dustin, who did the podcast with before, me and Mr. Kind of like a little bit opposites. And it really helped like he would Dustin is he needs to understand what is happening all the time, he dives really deep into things. Whereas I'm like, I gotta do this. I got to learn as I go. Makeup work admin, then refactor the code that's written. So she was always asking you questions. I'll get back to your book and figure that out. Yeah, like, I would have done something and passed an assignment and I would have done it in a not as good way. And he like, asking him asking questions is, can you key? It like, I was like, Oh, I could make that a lot better later. Or the next time that it's gonna be better. And I would just get something working, like write that. And then he'd be like, No, I need to understand it. Now. Trevor Page 27:42 I was going to hopefully say is, if you don't have like a Dustin or someone who's like that, we try to capture that as part of the code review process. So once you submit your assignment, we have experts who I say experts, we have two two people who have been coding for more than 10 years, each who look at your code and who will give you their feedback. So if you do do something that's really not, you know, good, they're gonna say it well, not, they're gonna kick it back to you and say, You got to fix this. So and even even animatedly, Ethan Bradley 28:10 they were really good at like, Hey, you did everything great. I had one really like you did everything. almost ideal. So here's some cool things you can add like to make it more performant or things. You can add validation or something, but you just have that info, which was just teaching me new things, which was great. Trevor Page 28:29 Good. I didn't didn't didn't know that. They did that. So that's, that's wonderful. Yeah. The whole point to it is to try to make you as well rounded as job ready as possible. Right. That's the point of any bootcamp and should be anyways, ultimately, to get you ready for the real world, which I was going to start talking about job. But I do want to touch base on on the topic of knowledge, like, well, job, my brain is going all over. So you, you so you graduated really quickly. And let's talk about the job search first, because I think there's there's some, some knowledge to gain a whole cycle of that. Yeah. So let's talk about the job search. You graduate, you start the job search, how does it go? What what happens? Ethan Bradley 29:06 Talk? Well, I start by making a resume, which I will deal with the help you help me and then I was in a couple of online communities. There's the resume making course that we got after graduating. So when all right, I sent it everywhere, absolutely everywhere. I think my the most I had out at one point was 400. And that was excluding the ones that had already emailed back and said no. And I think I had about four interviews from that. And the first one, I believe was one where they eventually told me like, yeah, you're nice, but we're actually just looking for seniors. We'll keep your stuff on file, let you know. Thanks. They were fine, but I was like, so bit of a waste. I don't know why you would talk to me in that case, a lot of calls being like, hey, can we set up a call and then I think they actually looked at my profile, it just goes to do it was just a bit of a disaster. And nothing happened. I got to one where they were, I liked their approach. But it was not good for my situation. They were like, We're bit I actually basing our thing more on interviews than the resumes. And like I had react on there because I did a little bit of React view. To learn something spirit ended up being a React interview. And what that taught me was, I really don't want to do react, okay? Only like, I don't want to get front. So at least I learned something from that. And I was like, I need to really narrow this down. Trevor Page 30:42 So that what did you do? How did you so you'd sent out? You did the spray and pray method, which I always say you get about 1% conversion rate, which is every 100 applications you send out, you get one interview back. So that's pretty much it. The Ethan Bradley 30:52 interviews were not what I wanted. Okay, it was so then what did you Trevor Page 30:55 do? How did you fix that? Ethan Bradley 30:57 So I did, I eventually, you had set up a deal with career sprout, to do some of their needs, which is that a company that helps you do the job search and negotiating, and all those things. And so it started doing that. And he got to the networking side, and realized that I've been doing everything all around, I started networking, and people started talking to me, like, I just messaged a few recruiters, they were like, Hey, let's set up a call, we'll see what we can get to do even the ones that didn't like end up in a job that they at least got me contacts. So I knew people in the area, I was the one and a couple online communities as in the discord community as well, nice. And a local guy EDB a lot of advice. Just by doing this, I was like, Hey, is everyone around here? And then we ended up having a private conversation. He's like, Yeah, you're doing exactly the right. Like you learned exactly the right course, I should mention that. He's like, Yeah, you learn Java and spring and exactly what he taught you for your local area, too, is, it's really important to find out what's your research where you are. That makes sense, Trevor Page 32:07 which is just go to indeed, and type in different languages and see how many jobs are available. And they aren't really I can almost guarantee if you're in North America, the answers to that, to the to the most popular languages are going to be Python or Java. That's just where all the jobs are right now. So Ethan Bradley 32:24 we're in JavaScript, everyone learns JavaScript. So it's like, yeah, it's flooded with JavaScript developers. Trevor Page 32:29 Yes, exactly. Ethan Bradley 32:31 Not that it's bad. Just thanks. A lot. Trevor Page 32:33 There's a lot of competition. We could talk about that a lot. But yeah, there's a lot of competition. Yeah, Ethan Bradley 32:37 the net working, got the conversations flowing, and then ended up working for me to actually get a job was actually through you. I think your dad was able to talk to to meet a contact here in Ottawa for the jobs and I'm about to start. Exactly. Um, so you have anything now? Freaking like leverage, like, and I know you're in my network. So that's what got me my job. Trevor Page 33:07 It's such that's helpful. Yeah. When you have someone who has a network, it's very helpful for getting a job. Ethan Bradley 33:13 Yeah. But yeah, once that started actually working, like, because I was I actually applied to that job once before, and no, but as soon as I like, got in, and someone was like, Hey, can you talk to him? They talked to me, and they're like, Oh, this is great. Trevor Page 33:31 Yep. And the reason is, is because the everyone just does the spray and pray method, it's, it is a very easy thing to do. Right? So everyone does it. The problem with that is when you're on the other side of that, when you have 500 applicants, you don't have time to go through 500 Different people to pick the right one, right? Something has to stand out. Right. And oftentimes people will say, you know, make your resume shine, make your written and have a great portfolio. And yes, those things are important. That'll make you stand out from maybe 50% of the 500. But how are you going to actually stand out? So you're the top three, right? And that's where you need to have some sort of networking connection, a human to human interaction, to be able to say, Hey, listen to me, my name is Ethan, I am a good coder, I think I can genuinely help you. And when they listen to this, okay, I'll give this guy a shot. Right? And then you're Ethan Bradley 34:23 getting in front of that person, they can actually judge you for who you are, instead of just what you look like on paper because I look horrible on paper for a coding job. I just do. I'm like a great player for eight years. And then a coding bootcamp and right. Like, I'd helped out a little bit in the bootcamp afterwards so that was that was it Trevor Page 34:44 but you still got a job? Like yeah, I did can be done. So let's leave us alone. It was great. Let's talk about it. So you got the job offer. You've accepted that you signed the paperwork, you start soon. Do you want to talk more about the job itself? I don't know your title if you want to say salary or salary range. To you talk about Ethan Bradley 35:00 it. I don't know, I don't have a lot of details on what the actual work is gonna be like, but well, you can glean that from Daniel, I'm going to be working with CGI, which is like a consultancy, where I'm basically I'll be on a team, and we'll get contracts. And our team does the contracts in Ottawa heads a lot of government contracts. So I'll be on a government contract where we writing a program for this department. It's written in COBOL right now. And so they're like, Oh, it's a little outdated. We're going to write a new one. Cool. I'm going to be a junior Java slash full stack developers by title, which feels nice to see next. Yeah, a year or two. I could take the junior year off. That's right. Yes. But I am taking a bit of a pay dip because unlike at the top rung of where I am coming from, right, and I'm going into an entry level position, but even then it's I'm gonna be making 55k a year plus benefits Plus, there's vacation a bunch of other things three weeks vacation. Yeah, we're adding paid vacation in my life. Yeah, so you have health insurance and all that stuff. And just paint really pleased. Excited for is the vacation. Yeah, exactly. Trevor Page 36:17 So that stuff all adds up. And so now you've you've got this job and and and we're on time. Oh, and remote. Very nice. Yes, I'm Ethan Bradley 36:26 gonna have a brand new baby, so I can work remotely be told to help me. That's also a valuable, Trevor Page 36:32 yeah, although you'll regret that later. But anyway, it's nicely I'll be like, okay, honey, I gotta go to my job now and then leave. But the depends on the person. So I see that I've been working remote for 10 years. So I've been in the thick of it for both of my babies. And it's a lot of work. So So yeah, you have this job. And oftentimes people will focus on that starting salary, right? They're gonna say, you know, I'm not gonna take a pay cut. Like that's, that's ridiculous. And that ended up and what they don't see. And it's frustrating is that the first job and the first pay that you get, lasts for maybe 12 months, right. And then after 12 months, your your world opens up, you can now you don't have to stay with CGI, if you don't want to, hopefully you will. Because they're a good company. I've worked with them before. They're good people, they take chances on juniors, I think they should be rewarded for that with loyalty. But that's up to you. You can always play the field and go and get another job after 12 months, right? And so many more doors open up and now you'll have multiple companies reaching out to you saying hey, I want to hire you. And now you can say, I don't want to work for you unless you hit this number. And then you can jump right back up to where you weren't where you would topped out. After eight years as a stonemason. I forget the the brick and stone use brick and stone mason, I want to be accurate. So you can now take the top of what took you eight years to achieve as a brick and stonemason. And then do that at year two of your of your coding job right now, probably somewhere around there. Ethan Bradley 38:00 Well, like the way I see it. I've got the starting salary. Okay. This is not a horrible salary in as far as salaries go. Right? For an entry level position in Canada, Canada's a little bit lower. So yeah, yeah. I mean, should I've negotiated the higher maybe, but I also negotiate my way up to five, detach it. Okay, good. So I'm happy with it. But now, I can prove, prove what I can do. And I think I get to discuss with them every year. Like, if I want, you have a ball, absolutely, I just spend a year and I need to get Trevor Page 38:41 so the piece the piece of advice for you. Just Ethan although this helps for anyone else listening if they're in a similar position, when you have an accomplishment in your job now for next fall months, write it down, that's something I did not do. Write it down when you when you get any praise from your boss write it down date. And and you know, accomplishment, it may be even if you want to go overboard get like the email or something so that you can build a case for yourself a year from now. Because if you just walk up to your boss a year from now and say I deserve a 10% raise or a 20% raise or a 100% Raise, they're gonna say okay, why? Because they probably couldn't give it to you, you probably will be worth that. But you need to prove that you're worth that right. So that's the one little piece of advice that I did not do that you should is just keep track of it and say, you know, I I actually tend to work 50 hours a week or whatever the case may be and I'm only I never charged you for it or something. So I don't know, whatever it is that you feel allows you to provide value to them write it down. And anyway so super exciting. You've got the job you start soon you're gonna get all this experience your career trajectory is gonna go up and up and up. Once you get senior level like where I'm at and I have 15 years experience or maybe yeah, maybe 15 Maybe more I forget. Now once you get to like five or eight years experience, you didn't get to start swatting away deals for like 150k 160k Hundreds Then, like the the numbers, it seems like it seems like play money. It seems like something that's just not real, like how can ever you know, but that's just the reality of coding. It's, it's, it's ridiculous Ethan Bradley 40:11 like 100k for me in my glass career just seemed like unachievable, unachievable exactly right. Like, unless I work a ton of overtime, which they don't always pay overtime, like, ton of hours never see your family going, like, I can see it now. And let's say I have a plane, I'm gonna get there. Yep. So it's, it feels like freedom. To me. Trevor Page 40:36 It's good. I'm glad. And that's and that's what. So this is the end result. Right. So if I'm talking now about from the terms of marketing, from, you know, talking about the bootcamp or any bootcamp, there's a before state and an after state for the student, right. In this case, Ethan. Ethan's before state was job he hates you know it, okay salary, but, you know, lots of uncertainty around, you know what sick time if I'm sick, I don't get paid. If there's a strike or something, I take a pay cut in the winter, sometimes I can't work, you know, whatever. The before state is like a frustration, and I just am not happy. And I and I could do so much more, right, there's so much more in me that I have that I can do. And then you go through this transition, which is the boot camp. Now this can be done without a boot camp, this can be done on your own with self paced learning, it just takes a whole lot longer. And the chance of failure is a lot higher. I've said this many times, I don't need to go into the details. But that's just a fact. And then the after state is where we are now, which is this oh my god, this like, feeling of more light like this and like less pressure on the shoulders. And it's like, okay, like, I can see now this path and this amazing. And that is the key that you need to hold on to in your brain when you're starting out. Because that middle part in the bootcamp sucks. It is hard, right? And I've tried to express that. And I tried to say like to hit the brick wall of like, your something doesn't make sense. And you feel like you're never going to understand it. And like, it's, it's hard. And you need to remember the after state, you need to remember the ossicles. Ethan Bradley 42:07 Specifically, I was trying to learn SQL and databases. And I was like, I think I did three different one on one calls with Pete in a day just like ranting, why this to stupid, it doesn't make sense. Horrible. potentially be like, Okay, take it hour, we'll come back later. If you notice, like I clicked on his new dishes. It's, it's frustrating. But like, I spent so many time just ready to get Pete about things. But like, I had to keep this in my brain, I set my goal. If I can do the end of this, by the time I'm 50 I could spend my winters in Brazil. At the end of the day. I close my laptop, walk outside, the wife hands me a coconut and we're sitting on the beach. Trevor Page 42:53 Beautiful that is that and you have you have said that it really Yeah, you've you've you've kept that same, you've been saying that for months. So you have a very specific image of your, you know, after state your even your after after state, you know, somewhere down the road and you know, 10 or 20 years from now, the they could work from Ethan Bradley 43:12 anywhere. So like let's say I'm a senior and people are like begging for me to work with them. I'm like, I can go anywhere you want Trevor Page 43:18 anywhere. Man. The job I have is yeah, the job I have the company is 100% remote. There's like the the they have like 400 people working from like, 50 different countries don't quote me on that. But it's it's ridiculous, right? It is truly remote. They are never going to ask me to go into an office ever. Because if they did, they would have a nightmare on their hands of people like so those jobs exist. And they pay really well Ethan Bradley 43:42 you go to the store, buy those 150 Sounds good. Trevor Page 43:46 So okay, so there's the after state just so if you're in a before state right now, if you're in a position of like, oh my god, I can't do this, and I hate my job, and what are my options, and I'm not good at math. And I'm not I never do well in school, and I don't think I can do you know, it's, you know, the first thing I do is probably dip your toes in the water do kind of like what Ethan did try Free Code Camp, try some Udemy courses, dip your toes in the waters just know, it's still gonna be hard, you're probably still gonna be frustrated, you're probably still gonna feel like you're not getting anywhere and but you do want to just see if you're at all if there's still an interest if you still wake up the next day curious about how to solve that problem. Like, if you're still coming back to it, that's probably a good sign. Whereas if you're like, I never want to see that like you Ethan Bradley 44:27 want to do like you every time you're doing something else. You're like, I wish I could be doing this. Wishing Trevor Page 44:33 That's a great feeling. Right? That's that's what you know, you're meant to be doing this. So I think that Ethan Bradley 44:38 like I could do that from within job like it's Trevor Page 44:42 it feels like cheating is what I say. Feels like cheating. Because like, yeah, to get paid to do something that you'd like you'd probably be doing anyway. Like it's it's feels like cheating. So So if if I don't know if you have any advice for someone who's who was in your shoes, before you did the bootcamp, is there any thoughts or advice or anything that you could get? Give it's okay if you don't have any. But is there anything that you would say to someone who would be like, yeah, just starting this journey right now, and listening this podcast Ethan Bradley 45:09 we play, we're not in a bootcamp, I would say, maybe see if you have option to join one, not that it's necessary. But if you're not going to meet up, try to do that kind of stuff, meet actual people, you're going to need people to help you. There were no meetups here, but when I joined the bootcamp, you need to take it in, get them really paid for it. So like, the takeaway is a Trevor, if you're in his boot camp, eat all the other people like I was on Slack all the time trying to get every meeting and good. So it's like, it's just like, in my boring work. It was like this little highlight outward spin thinking about coding with people. And just take advantage of every condition. Trevor Page 45:56 Absolutely, because some people don't, some people will join the boot camp, if that's their journey, and great, there's some people who I've barely heard from, they graduated in the boot camp and got jobs on their own, I may be put, I maybe had three hours of conversations with them through the entire process, hey, some people can pull that off. That's rare, it's much more likely that you're going to have people who are banging down your door asking for help. Those are people who do great, right? The people who I know really well are the people who succeed, the people who I never hear from are very likely to not succeed. So don't also just join the gap and not use itself. Ethan Bradley 46:31 It's about it's not so much about just the coating, it's like meet the people, these people are going to, you're going to know that. So later on you might need you might need an introduction and that person knows someone like it. And you've made that relationship. So it's not weird for you to just be like, Hey, man, how's it going? I'm doing this guy trying to look for a job. Do you know what he would absolutely be doing? Like, that's how I got a job. Trevor Page 46:58 Absolutely. And that's how I've gotten a job in the past before I needed a job. And I've told this story many times, so I won't go in detail. But I went from sitting down with my wife one night saying, oh, I should probably pick up another job to 24 hours later, I had a job offer 24 hours. And that was because of my network. I reached out to a few people. And one of them said, Yeah, I could probably get you hired. Let me check with my boss. And they had a conversation with the boss, the boss called me and said, Yeah, I mean, we were looking for some help. Would you be willing to start on Monday? And I said, Okay, sure. Done. 24 hours, I had a job. And it was, yeah, I think it was, uh, that one was 140k with a potential up to 10% Bonus annually lay that in 24 hours. So it, it it's insane. Well, that's a living for 50 off, which is much better than 400 Plus applications. Yeah. So the network is very important. So yes, build those relationships in the bootcamp or wherever doing meetups, whatever worked on you. And because it's, it's it pays dividends big time in the end. So cool. I think we're, I think we're good on time. I know this is gone long. I can talk about this stuff for hours. Anything else you want to say? I know some people sometimes who listen to these things want to reach out to the bootcamp students to pick their brain? Would you be interested in having people like, I don't know, email you or message you on LinkedIn or anything like that to pick your brain? Ethan Bradley 48:14 I mean, yeah, I mean, the slack. If anyone's in the prep course, were like, I'm on LinkedIn, you can grab me see my pace. Trevor Page 48:23 Okay. So I can share your I'll share your LinkedIn, your LinkedIn profile link on on short, Elektra, something, they can go and click on it and talk to you. Totally cool. Cool. So there you go. So you can connect with that with Ethan. And in your message, just say, Hey, I'm a potential, you know, bootcamp student or something. And then he'll know to accept your, your, your connection request. What's something good, you'll build Ethan's network? You can build your own network. There you go. Wait. So it was an autopilot. There you go. Perfect. So yeah, thanks very much for taking the whatever hour whatever it's been that we've been chatting. We've got overtime. And yeah, I can't wait to get in touch with you, Ethan. And see how your journey goes in year one, and two, and three, and five. And eventually, you'll have to take a picture of you on the beach with the coconut and send it to me, because that'll be a good one. So it'll be fun. It'll be fun, man. So thanks so much for taking the time. And I'm sure we will hear from you again sometime. But you take care. All right. There you have it. Ladies and gentlemen, this is Trevor back from the future present. I don't know how you call it after the interview took place. And yeah, just wanted to say thanks again to Ethan. He really was very generous with sharing his his thoughts and his feelings about his experience. And again, so proud of the guy. I can't say enough how incredible he did in the boot camp just because he put in the work. You know, even though he had a pregnant wife, and even though he he had a job and you know, although it wasn't constrained on his time. I think it was an O overall a good thing that it forced him to think about how he would solve the coding problems that he was, you know, at any given moment working on right. So many students will just just dive right into the code. And I, you know, I was to blame, I did that as well, when I was new to coding, you know, way back, when I first started, I would just jump jump into the code to without really thinking much about it, because I figured that was the most, you know, the quickest way to get across the finish line. Trevor Page 50:27 But now, seeing all these data points, I can see that's not the quickest way across the finish line, the quickest way across the finish line is to think is to plan ahead of time is to not write code until you understand all of the high level steps that need to be completed in order to solve whatever problem you're working on. So Ethan was forced to do that on his job, his, you know, repetitive and mindless job, he was able to think about all the those steps in the high level and what could work and couldn't work. And as you heard, I think that was a big asset. So definitely a big takeaway there. And also the whole, you know, hey, don't just spray and pray with your applications. You know, 400 plus applications with zero success is frustrating to anyone. So, yeah, there's always a better way. So leverage networks. Obviously, if you're interested in the bootcamp, hey, you know all about it, coderscampus.com/bootcamp, we have, you know, student alumni who are able to, you know, you're able to rub elbows with them, and get access to some of their network, and contacts, as well as some of mine, and hopefully, drastically increase your chances of getting a job. So these people that are getting jobs don't have degrees, these people that are getting jobs, you know, they just did the bootcamp, right. They just put the work in and the effort in and then follow the advice that they were given. And, you know, did what I said, and then hey, lo and behold, they got jobs, imagine that. So, you know, it's, it's, it's not a hard thing to do. And it's a, it's a simple process, I should say, to simple process to follow. But I guess it is hard to stick to it. Because it can be so frustrating. Anyway, I've done all this before, if you want help, if you want guidance, if you're someone who is driven, who doesn't, who won't stop until they get that job and are able to, you know, have this amazing, illustrious career as coders. As I always say, we are so spoiled as coders, you know, my my, I also work in the world of coding still, because I like to keep my skills sharp, while also doing this whole boot camp thing. And my salary now, I mean, it's, you know, it has the potential to be above 200k. Now, so it's like this, it is so unimaginably rewarding, to be paid to do something that's fun, right, and not only just getting paid to do something, that's fun, but essentially get paid what like, three or four times the national average salary, you know, it just feels like cheating. But anyway, you can't just have that as the goal. You can't just say I want money, money, money, money, you know, you have to actually like a little bit of what this is, you know, this, this coding stuff. So if you've dipped your toes in the water of coding, and you still like it, but you're struggling and you don't know, you need guidance, and you don't know what to learn, and you find yourself doing the the hopping that Ethan was doing in the beginning where he was learning a little bit C sharp, but then he was learning a little bit of Ruby on Rails because someone said, hey, you need to learn Ruby. And then he learned about JavaScript because someone else said, Hey, you got to know JavaScript. And then he learned a little bit of Java because someone said, Hey, Java is the best and you got lots of jobs with Java. And then someone else said, Hey, learn, you know, C++ because Bob, and you know, he's just bouncing around. It's like, No, you need to focus, right, you need support, to focus on one path, make it through that path to completion. So that you can open up the next step in your, in your journey, which is ultimately to get a job. And then hey, if you want to switch to another language, knock yourself out. The hardest part and the most important part is to get that first job. So this bootcamp is going to help you with that. It's going to teach you one stack one very popular stack. People always ask why teach Java, I teach you how because it's like the number one most available job you can get. And the skills that you learn as a Java programmer Trent are transferable immensely to other languages. And you know, web developers are our, you know, always in demand and you know, learning Java as a back end language for web development, as well as some JavaScript. I mean, it's just so oh, it just, it's so good and so helpful and it's so Trevor Page 54:50 widely spread available. It's so there's so much opportunity, it's just you need to put in a lot of work, right that's what this comes down to. If this were easy Not everyone would be a coder already. Okay? It's not easy, but it is simple. And we are here to help. We are here to put you on that path and get you across that finish line. Like Ethan and like Dustin before, before him and like many of our students who graduate and gotten jobs now we're here to help you along that journey. So if you are dedicated if you want to get this done and if you're gonna stop at nothing, then please, please apply. I think we can really help you so coderscampus.com/bootcamp, all one word. And yeah, look forward to seeing you and speaking with you inside of the boot camp, because hopefully you'll apply and get accepted and make it through. And I'll see you on the inside. So we'll see you there guys. Thanks so much for listening. And until next time, take care of yourselves. Happy learning. And bye for now. Intro / Outro 55:48 Thanks for listening to this episode of the coders campus podcast. But before you go, Trevor has a favor to ask you. In order to keep these episodes free. He'd love for you to leave a rating and review the podcast on iTunes. Just go to coaters campus.com/review to leave your own rating and review of the show. So if you have 30 seconds to spare right now, please help out by leaving a rating and review via coders campus.com/review It will ensure that you continue to get these awesome free podcast episodes each and every week. So if you like free swag, head on over to coaters campus.com/review Happy Learning The post EP59 – From Stone Mason to Software Developer in 8 Months appeared first on Coders Campus .…
 
In this episode we'll talk to Dustin, who is a recent graduate from the Coders Campus Bootcamp and managed to land a job within two months of starting the search. Dustin and I talk about his prior coding experience that he had before he joined our Bootcamp (spoiler: it wasn't much at all), and we talk about his experience as he went through the curriculum. Ultimately we know how his story turned out, but in this special interview we'll learn about HOW he was able to accomplish the task of completing the Bootcamp and landing a job while also being a father of a 2 year old, a husband, a full-time employee and part-time college student. We'll also learn about the important lessons that Dustin learned once he began his job search, and what mistakes he was making early on before he pivoted his approach, which then lead to the job that he was offered. If you'd like to get in touch with Dustin, feel free to add him via LinkedIn here Interested in starting your coding career? I'm now accepting students into an immersive programming Bootcamp where I guarantee you a job offer upon graduation. It is a 6 month, part-time, online Bootcamp that teaches you everything you need to know to get a job as a Java developer in the real-world. You can learn more via www.coderscampus.com/bootcamp Episode Transcript Intro / Outro 0:09 Welcome to the coders campus podcast, where you'll learn how to code from one of the best teachers in the industry. Whether you're an absolute beginner or a seasoned pro, the coders campus podcasts will teach you what you need to know to master the art of programming. And now, your host, Trevor page. Trevor Page 0:28 Alrighty, ladies and gentlemen, welcome to episode number 58 of the coders campus podcast. Thank you so much as always for joining and listening in. Today, we've got a good one, we've got another really impressive story from one of the students deep inside of the coders campus boot camp, I want to talk about his story. Today, I want to talk about some of the tips that we will be covering that Dustin, who is the gentleman that we will be speaking with Dustin talks about his experience in the boot camp, what he did during the boot camp to make sure that he was successful in completing the boot camp. And then what he did to make sure that he was also successful in landing a job. Very shortly after graduating from the boot camp, I believe he got a job offer within two months of graduation, which is quite good. And he shares some tips in terms of what a common mistake is that a lot of aspiring coders make when they're trying to get their first job. The thing he started doing this as well. And it was a big waste of time. He then learned that there was a better way to do the job. You know, landing interviews and getting a job, there's a much better way to do it. He'll talk about that. And then I add my own little spin on it and talk about another tip that I always see, again, aspiring employee to coders. Do they make this mistake. And it's so frustrating, because it's like, you're right there. You're right at the finish line. And then you just stop. And I want to talk more about that in. We will talk more of that in this episode. So it's full of a great inspirational story about Dustin and his current situation where he was a father husband employed full time attending some college courses as well as doing the boot camp. And yet he still managed to get the boot camp done on time and land a job within two months of graduation. So all in eight months later, he was employed. He makes a joke later about how you know, you can't even have a baby that quick. And yet I changed my entire career in that time. So it's a really great story. So I want to invite you to listen to it. So without further ado, let's flip over to the interview with Dustin from Louisiana. Let's go. So today we are doing by Dustin Vidrine past bootcamp students. And he currently is residing in Louisiana. I'm sure I probably talked about this already. And yeah, I just want to dive into who Dustin is what his story has been what the outcome has been inside of this coding boot camp that you guys obviously know, I have spoken about this many times since Yeah, I just want to talk about about depth and get to know a little bit more about him. So Dustin, talk about yourself. Let's let's let's learn more about where where you came from? Where were your roots? What were you doing? Before you ever stumbled upon the boot camp that you did? What was what were you? Did you have a job? What was your job? What was your life? Like? I don't know, anything that you feel comfortable talking about? Let us know what life looks like before the boot camp? Dustin Vidrine 3:29 Sure. First of all, thanks for having me. It's a pleasure. I feel like I'm going full circle here. So at the time of finding out of the boot camp about the boot camp, I was working at a plant chemical plant, which is about an hour and a half drive from home waking up super early, you know, 233 o'clock in the morning to get ready to go out there work 12 hours, come back home, do it again. So on the commute, I actually started looking at podcasts or anything to listen to, you know, eventually music gets old, or the same songs get old. So it's like I want to have something conversation wise to listen to. And then I stumbled upon your podcast, which is why it feels weird going full circle. Because now I am portant Trevor Page 4:15 now so you you So you worked at a chemical plant? Would you describe yourself as someone who again, I don't know many of these answers. So I'm gonna find out the same time as people listening to this episode. Would you define yourself as someone who was very tech savvy, not tech savvy at all a little bit tech savvy, like where did you fall on that sort of spectrum. Dustin Vidrine 4:34 I felt like I was pretty, you know, seven out of 10 roughly in the form of tech savvy because prior to the chemical plant I was actually working in the electronics industry with within a hospital working on electronic equipment and medical equipment. So I still had the tech vibe but it wasn't any, any programmer of any sorts or coder right? But I still wasn't a tech umbrella. So and also at the chemical plant I wasn't an electrical tech So I was still kind of in electronics in the tech field, but I wanted to go deeper and get my feet wet in it without having to go through a full four year university. Because I just, I was ready to get out and do something different, especially after a long commute and drive every single day working the long hours. It was time for a change. And that's when I heard about the bootcamp on the podcast. And I was like, You know what, this is it, I'm going to do Trevor Page 5:24 it. So it was you said, a one and a half hour one way commute Dustin Vidrine 5:28 or one way, when we're three hours a day driving, right, Trevor Page 5:32 three hours of driving, that's expensive, especially now. I mean, we're recording this in late April 2022. Gas prices ridiculous. So I can't imagine how many, you know, how many miles of driving that would be? Oh, my gosh, so and at the job itself? So you're doing some light? Like, what would a normal day be? Like? What what what, what are your normal activities and work that you did at that job. Dustin Vidrine 5:53 So at the job, we would, you know, I think around 435 o'clock ish, the supervisor would come in and give us our daily task of Whoo, who's requesting what are whatever work needs to be done within the chemical unit that will be stationed in and we'll go out and start doing that, get the permits for you know, you have to get approval from the actual owner of the facility, which would be Dow Chemical at the time, we're still this now. get approval to start working, get your crew together, get your tools together, and head out there and get to it. And once you find maintenance work or maintenance, run wire pull wires to troubleshoot, install, whatever any kind of think of as a glorified electrician, basically, so anything electrician would do, but in the sense of bigger commercial equipment and whatnot. So no, that was it all day long, and you have your lunch break, and then go right back into it. Unknown Speaker 6:44 And use it for 30 It Dustin Vidrine 6:46 starts Oh, yeah. 435 o'clock, the meeting starts we've kind of talked, touch base, whatever thing you know, what needs to be done and whatnot, and then head out, head out to the unit and get to work. Trevor Page 6:57 And 20 to 12 hour days. Yeah, typically go to the floor. Okay. Yeah, your make your I thought I you know, I get up at five o'clock. You know, doing a good job here and being Yeah, being at the job by 430 in the morning. I mean, you gotta get up at like, 230 or something to do that. Exactly. Wow. Okay, cool. So that I see where the where the drive would be to maybe pun intended. Yeah, that's, that's something so podcast. Hey, obviously, if you're if you guys listen to this right now, obviously, you know what a podcast is at this point. So I a very similar thing for me happened when I was doing my job way back when music got tiring, right, you want to start maybe learning something or doing something different? So obviously a great route to go. So I'm glad that you found us through the podcast. So that was your introduction to sort of the boot camp? And how, how much work had you done? I suppose the question is, how long were you actively learning about coding, either just learning about it and not actually doing it? As well as like learning it and doing it? How long? Did you do that? Before you even joined the bootcamp? Was it years, six months, 18 months more than that, and Dustin Vidrine 8:06 probably less than that, probably around two to three months actually picked up a couple of books on Python, because you know, everything, everybody raves how it's like a good beginner friendly language to get into, especially if you've never experienced and it picked up a Python book, had a laptop, I bring him in to work on my free time, or lunchtime out kind of code, following along in the book learning concepts and practicing, you know, exercises and whatnot. Maybe like I said, maybe two months at most, and then listening to the podcasts. And it was like, Man, I need I need something more. And I don't want to drop this to go, you know, I need to make money. I don't want to drop this to go to a four year, four year university. And God knows what will come out on the other end of that, but I need something now. And that was just enticing. I was like, You know what, let's do it. And I wanted to take it to the next level, because I was really interested in it following along and the books and whatnot, and even some cheap Udemy classes here and there. Just you know, you don't know what you don't know what to do. You don't know what path to take, right? So it's kind of like I'm a Google stuff and see what comes up and read it and everybody points out, you know, start learning this Free Code Camp, get a free resources first and then see if you really like it, or if you think you can do this. And that's kind of what led me into getting pushed pushing it further along. Trevor Page 9:18 Yeah. And that's really good advice. Because as I said, before I hit record on this, I said, coding boot camps are not for everyone, especially because you know, they come with a cost, they are more costly by far than just, you know, these cheap Udemy courses or, you know, obviously free tutorials. So it's a really good path to try to dip your toe in the water first, right? Like you said, buy a book, do Free Code Camp do. I don't know there's a bunch of great resources out there that are and see if it's even at all of interest to you. It's going to be hard. It's you're gonna not know what the heck you're doing. You're not going to understand 90% of what you're learning. That's a given. That's normal. The question is, do you wake up in the morning thinking about it? Do you go to bed at night thinking about it and being curious about it and like those are the signings, I look forward for someone who has a chance at being successful. Two things I want to follow up on, I say to I forgot the second one already. The first one is you said you've only did it for like, two or three months. And to me now, Dustin Vidrine 10:16 when free time, which was much per day, right? No, no, Trevor Page 10:20 this is, this is not to two or three months full time. This is definitely part time you say that. And now knowing knowing I'm able to look back, I have 2020 hindsight in my favor. You did phenomenally well for having two or three months of prior experience. Normally, for people with two or three, you know, less than six months. Now I've learned you really need more time than you know, the typical six months. So you did quite well. Did you do it in six months? I can't remember if if you Dustin Vidrine 10:50 actually I was I think a week before or maybe right. I was right out Trevor Page 10:55 that deadline, a little bit of an overachiever. So we'll talk about slightly very slightly less really, it is quite impressive for you know that. So I want to dive into that in a bit. And let me just think if I can think of the second thing that I wanted to talk about. So you're doing it in your free time you were you were so Oh, you said you brought your your computer to work and you're actually coding at work and doing a little sample. So that's also really important, right? It's one thing to have a book to watch tutorials to, you know, watch a Udemy course, it doesn't account for anything unless you actually start you know, fingers to keyboard, right, you have to do the stuff you have to type it in, you have to fail, get frustrated and whatnot to really start any sort of learning. So while podcasts are lovely for maybe, you know, skimming over broad concepts, or maybe getting motivation and inspiration, they're not a substitute for actually doing doing the work. Dustin Vidrine 11:47 Absolutely. Absolutely, though, it's like I use analogy a lot. It's like watching someone swim. Trying to learn to swim by watching someone swim. You won't until you get in the water, right? Yeah, you might struggle. But eventually, if you keep doing it, you're gonna get better and better and better. So Trevor Page 12:02 the good news is, was when you struggle at coding, you're not going to drown. Drown. So you might metaphorically drown. That's yeah, we can always help. Yeah, that's what the bootcamp is for. So, so cool. You, you, you learn about the boot camp, just as this is for my own purposes. You know, everyone else listening, this may not be of help to you? And maybe I'm curious what factors led you to say yes to this boot camp that you took the coders campus boot camp? were you considering others? Or was it just like, yeah, I want to do that one, how much time I Dustin Vidrine 12:30 looked, I looked around and you know, Googled stuff, read it, you know, read, it's pretty unbiased. And some things you know, you ask a question, people are going to tell you their honest thoughts, a lot of places where it's super expensive, and you know, or even fast, like, oh, in three months, we'll have a job. I was like, Oh, I don't buy that. I don't buy that. And then they charge you know, $30,000 or whatever. Right? So what led to this one, it was just affordability and the time duration. You know, of course, you want to get done quick, but you don't want to get so cool. Done. So quick, always feels like you didn't learn anything. So I felt like the six, even to a one year mark would be perfect, because you need some time to actually understand and digest the material. And also the price of it was was nice for me as well. Trevor Page 13:11 Now you Yeah, the price is always we always sort of we try to keep it as best as we can most affordable as we can. As I said before, my life would be far easier. If I did not run a coding bootcamp, life is far easier just selling online courses. It is so much easier, so much less overhead, there's no staff needed. There's no like, it is so easy to run a bit I shouldn't say so he's gonna run a business selling information courses. But the that's not where the impact is. That's not where you're actually really changing lives. Because there's such a high failure rate for online courses. And I know, I can say that from experience did it for seven years, right? 95% of the people who took my courses didn't finish. And of the 5%, who did finish, there's a smaller fraction of those who actually succeeded in getting a job. Right. So it's just, it's such a high failure rate, because it's so difficult. So I would much rather just do that. But just, you know, it, the doing the bootcamp and getting to know people like you, Dustin, and I can name like, you know, whatever. 50 other names right now that, you know, I wouldn't have the pleasure of getting to know these people and actually really helping to not to be put too fine a point on it, but changing their lives. I don't know if you would agree with this changing your life. So it means something to me. And I think that's a cause that's very much more worthy than just, you know, doing online courses, in my opinion. So having said that, that boot camps are not a magic pill. I want to talk more about your experience in the boot camp in terms of your like, how hard was it? And do you have any stories about did you ever actually want to quit during the bootcamp? Did you ever actually want to break your computer like yeah, let's talk more about that. Of course. Dustin Vidrine 14:55 Of course. It is difficult to say the least. Definitely good for sure. Get a few times on certain concepts and they'll fight that rated on a scale of one to 1010 being the hardest. 10 being impossible, right? I'd say it depends. So there's a factor. And if you take out the networking aspect with your community, right with your fellow classmates, I guess you could say, if you take that out is probably eight, eight and a half out of 10. Pretty hard, pretty hard, you throw in help of friends and nice community that we have within the bootcamp, that's a six and a half to seven, it makes it slightly easier, but not so much where it's, you know, you pay your money, you finish it, and okay, where's my job, you still need to work, you still need to work, right? It is difficult, but it is manageable, you can do it, I've done it, working full time, I have a two year old, you know, my husband, and I still had time to finish it within the time timeframe. So you don't need to be disciplined. And you do need to know how to do some research. And I think a big factor for me, the way I learned is I need to practice any a lot of practice. So I would watch you know, some of the course material and talk about it with other classmates and then get some hands on with it, even make my own versions of programs and whatnot using the same concept just to really drive the material in because I can't just learn it and then move on. Because you know, two or three lessons down the road other than forgot about the previous stuff material, right? So it is hard, but it is doable. You just need some discipline and some be intuitive, you know, you've learned something on Google stuff you need or you get stuck or reach out, don't be scared to reach out, it's okay to fail. Basically, Trevor Page 16:38 you're going to use the way I define failure as a cheesy way of saying you never you only fail if you give up. Failure is something that and this might be more part of the entrepreneurial circles that I run in failure is usually and again, this is cheesy, but it's celebrated because it means you've learned something. But I think that that's true. I think when you fail, that's where usually the most learning happens. It's like, oh, that didn't work. Why didn't that work? Right? And you can ask questions and get help. And bla bla, so yeah, I don't. This this idea. First of all, I'm getting sidetracked. Am I want to go. So first of all, the fact that you said it was a six and a half or a seven out of 10. I thought you were gonna say it was higher with the bootcamp. So that's actually that's That's not that bad. So that's good to hear. Now, I want to dive more into the what what you did specifically about discipline because I know that you have an excellent you're doing something right with your discipline, I'm able to talk about that now. Because I want to I want to that's really interesting to me, because like I said, having two months, three months of experience, a part time experience before joining the boot camp, and then still finishing it early doing well in it. And you know, spoiler alert, getting a job. It's, it's very interesting to me. So let's how, what, what is the what is your magic? Your husband, your father of two year old? I know from personal experience? Not easy. Oh, that's I wanted to ask you work. You were working a job, I assume 40 hours a week? Or was it more than 40 or less than 40? Dustin Vidrine 18:06 Well, the plant was more than 40 because it was took 10 to 12 hour days. And then after starting the Bootcamp for some time, I moved down to a different job actually closer to home working 40 hours a week. Okay, so sometimes it'll go over, but on average was 40 hours a week, four times per hour regardless. Trevor Page 18:23 So, husband, father employed Dustin Vidrine 18:29 bootcamp. And if I can throw in one more, one marker, Baltimore's curveball into that I'm also enrolled online in college, university. So I was doing that and actually knocked out quite a bit because it's self paced WG EU if anyone has ever heard of it, also enrolled in there. So I was doing that at the same time. Actually, I started one month before the bootcamp Trevor Page 18:51 right. Now you say that, how how did you Dustin Vidrine 18:56 get an excellent I saw him I don't know. For me personally, just, you know, for myself, I don't know I don't see it as a big deal. I just do what I need to do. Allocate time time management, you know, okay, today, I need to focus on this. I need to catch up on this. I just tackle it Trevor Page 19:11 yet. Do you? Do you have a calendar where you block out time like you say mentally, mentally? So you say okay, you wake up in the morning and say okay, you plan your day, the day the morning of is it the day before? Dustin Vidrine 19:24 Like Well, I'm working less I'm working on some code, right? And it's like Okay, tomorrow I really need to catch up on this class assignment or whatever it is. So a planet towards the end of day mentally just to kind of get myself ready for the next day's like alright, when I wake up, grab some coffee, grab some breakfast and get to work. Or if you have a full time job you know, any any slot you can or that night when you get home from work or whatever it is, that time is specifically to that goal for the day. And you know, even if it's sometimes I'll put it two or three days in a row like alright, for the next three days, I'm going to crush them. Online core some material. And the next following day I'm gonna get back on some code like I just I kind of flip flop but I'm always like dedicating time and it's 100% that time, okay to me it's like it's kind of a chaos, but there's a method to my madness and guessing in my own brain. There's no like, follow these steps, it's more of just okay, I need to get this done and this is it and this just, that's it, I'm disciplined into it. And that's the goal for the day and I just put it in if I gotta give it three hours, alright, he's getting three hours. So 100% of my time. Trevor Page 20:31 Okay, so it is it there is planning involved, I would say again, the analogy is you're taking step by step one step at a time, it's one day at a time, and next day, this is why you're not planning out months ahead. You're not planning weeks ahead, more or less, it's just Dustin Vidrine 20:44 good to make it more structured. But Unknown Speaker 20:47 yeah, Dustin Vidrine 20:48 it's been, it's been going well, so far. So Trevor Page 20:52 it's clearly working very well. Now, for those of you who are not watching, I don't know, if I'm gonna post this as a video format. You might if you're podcasting, you're only hearing this, so you can't see. And forgive me if this is embarrassing. Dustin is in good shape. So are you is it? Would you attribute some of that discipline in there? Is that also part of who Dustin is like, where does that come from? Dustin Vidrine 21:14 Yes, so I used to haven't done in a while. I've kind of fallen off the wagon. But I was into the strength sports strongman specifically in powerlifting. And that's kind of a regimen, you know, your weeks planned out for the lifts, you're going to do the weight you're going to do and just there's a method to the madness, I guess you could say, after starting school and boot camp and working to try to get a job within the tech industry and whatnot. I've kind of put that on the back burner. But the same rules apply, I guess, you know, you have a goal. And the goal is to do this, and I allocate time throughout the week to do that. And I in a way it kind of carries over. Right. Trevor Page 21:50 Yeah. There's clearly something about you that that enabled you to get this done. And that's the reason I'm asking is I'm trying to figure out for myself, because not everyone is going to succeed in the bootcamp, I'm not going to make it all rainbows and sunshine, there's a percentage of people who and I know, within 30 days, maybe even 14, when someone starts to boot camp, whether or not they're going to make it right. I have a pretty good radar for that. And I'm trying to be able to, but I only know that once they start, I'm trying to figure out how do I figure that out before they start? So I can save us both the pain of you know, actually failing, which means you know, quitting. So yeah, one one interesting thing I've noticed, and this is with limited data points. One thing that is that is thought of as I've seen as a superpower. And I again, I don't have no idea if this applies to you probably doesn't, who knows, there are a few of my very successful students have ADHD. And this ADHD for one student in particular I was talking to coding was like one of the first things that they that they found that sort of silence their mind that allowed them to truly focus. And this particular student did very, very well, I have no idea if you have ADHD or not, but I'm trying to find these. What are they? What Dustin Vidrine 22:58 do I think I do? At one point, I was taking medication, he helped me kind of focus, you know, feel Adderall or whatnot, right? The Miracle student drug, right. So but I haven't in a while, but still it does come in and does help slow the brain down. I feel like my mind is just like 200 miles an hour. Right? And it does help slow you down not promoting the drug for any way. But no, no, of course not. Say that. Yeah, I felt like I did have I do have some form of ADHD. Interesting. Okay. Trevor Page 23:28 I think I think in this case, it's the coding coding is the drug right? Coding is the thing that can help you. Dustin Vidrine 23:32 And I think it's more of the coding, because you're tinkering with something because it's, you know, you need to focus on a, it's not like, you know, you're coding and watching Netflix and playing around on a game like, this needs to be done. And if you're interested in it, you got to have you have to be interested in it as well, you'll focus on it, right? It's like, if I gave you a bunch of Legos and instructions for the Legos, you probably sit there and build it. It's kind of the same format, right? You got to focus on it. And you're going to you want to see it built. Same thing with the software. So this is my opinion on it, I guess. Trevor Page 24:04 Yeah, this was not planned. I just I've been building these data points. And it's a hey, there's something that because I feel I didn't feel like some. So one of my good friends has ADHD. And when I talked to him, sometimes I might think I have a mild case of who knows. But yeah, cuz I've done fairly well in coding. And I love coding because it's, it's something that puts me into flow. Like, immediately if I know like what I need to be working on, I can drop into flow. And if you guys don't know what flow is, if you've ever experienced loss of time, if you start should say, well working, you'll be doing an activity, and then all of a sudden, you know, it's lunchtime, or it's summertime or it's bedtime, and it's two o'clock in the morning. It's like wait, what? How did that happen? Other people will experience this like maybe if you feel like video games, he'll sit down and play video game and then boom, all of a sudden, it's like two o'clock in the morning. You got into flow, right? Your brain was so hyper focused on this activity that everything else vanished coding does that for me. I don't know if it does that for you as well, but it's it's it is like a drug. It's fun. Dustin Vidrine 24:58 For me. It's the days go by you because it's kind Trevor Page 25:01 of scary. And I've said this before in the podcast, it's it feels like cheating because I enjoy it. And it makes the days fly by and you get paid for it. Right? Not only can you pay well for it, so it feels a little bit like cheating. So anyway, so talk, let's, let's spend a little bit more time talking sort of more about your experience. In the bootcamp, I alluded to the pain and the suffering part of what was fun about it, what was nice about it, what what did you What did you really enjoy about it, if anything at all, I really Dustin Vidrine 25:29 enjoyed the way you lay it out the material, just, you go through you actually, cuz you're building things, right. Most of the time, in some of the lessons, you're actually building stuff. Actually, whenever you get towards the inevitable, you start using the framework so that now you get to build things you could see come to life. And you follow, you can call along with it as well. And then what I like to do with that is, you know, after the lesson is over, I see a we built a user form, or we can input data and save it to the database, I would recreate it in my own way, you know, if you're using a user or whatever I'll do like a student management system, kind of the same premise, but switch it up a little bit, and then do it without the training wheels, I guess I would call it you know, watching the videos and coding along was great, but that's training wheels, kind of like watching someone swim in order to learn how to swim. Put that off the side, try to build it, it's gonna break, you're not gonna do it the first time. Correct. So, for me, that was I enjoyed that part because you actually did real projects, or at least parts of real projects. And not just here's a for loop. Okay, next, you know, here's a while you actually did something useful that would carry over either to the next lessons or actually projects later down the road. So I enjoyed that, for sure. Trevor Page 26:39 And with all your free time, you were able to do that. Good to no extra practice. Yeah. And one of the things for me, I think, who was it that? Was it Ethan that asked the question about he, I had said that one point. And he referenced the fact that I said this that I had done something to improve my skills and level up in my career, I forget who asked that question. And my response was, yeah, one of the biggest level ups that I ever had in my career was building my own project from scratch using a framework at the time that was brand new, that might the company I worked for was using that I had no experience in now is called Spring, I built an entire project, a real world project that I had actually intended on turning into a business, and then selling, selling the software as a service as a business. So I actually like had ambitions for this day went nowhere. Put the learning Yes, sidenote, don't start a business. It's so hard. It's talking about the levels of difficulty learning how to code is like, you know, whatever level you're seven, running your own business is like a nine out of 10 in difficulty. And then I would say like being a parent, because maybe nine and a half and a 10. Anyway, don't start unless you like torture and agony, learn how to code instead. So yeah, that's sort of what I did was, you know, building your own stuff going in removing the training wheels. In other words, very, very good advice. Anytime you're going out into the wild and doing it all on your own, you're going to hit roadblocks, you're gonna quote unquote, fail not actually fail, but you're going to hit errors, and have no clue what to do. But when you have the support of the bootcamp, and you have people to reach out to and ask and say, Hey, I'm getting this error, what's going on? That really helps, right? When you when you can hopefully get quick feedback quick. Dustin Vidrine 28:19 Absolutely. Shout out to Ethan for that he really helps everyone out, he helped me out towards the end as well, getting stuck on even personal project, you know, something that we never covered before that I wanted to implement. And I was like, How do I do this? And, you know, he's a real good help. He's a huge asset to the community. Trevor Page 28:37 Yeah, so the Yeah, the community super helpful. I don't know. Yeah, I don't know how I would do it without all the people. So I don't know what I'm doing the build that that was great. Whatever that was that, you know, you know, so I need to keep doing that. But anyway, not to say that you can only get that in a boot camp, of course, you can get this if you set up your own, I'm sure on Reddit, you can probably reach out to people and set up your own little group to you know, keep each other accountable and stuff. So there's definitely cost effective ways of making this happen. So I don't want to say Boot Camps are the only way to do it. But I try to be organized, I try to have the community I try to have all the support and make it as easy as possible, take it from you know, a nine down to a six or a seven out of 10. In terms of difficulty, that's sort of a way to put it so Dustin Vidrine 29:20 and to kind of go back to the discipline aspect or surround yourself, this is for anybody surround yourself with like minded people. So like the classmates, the bootcamp the Ethan's of the of the coding group, right? These guys really keep you involved. If you're feeling bummed out or you're losing motivation, or you feel like you're stuck being like this is I'm not signing up for this. These guys will talk some sense into you. You really can't, can't do it without you know, support really. Trevor Page 29:49 You can but it is exceedingly rare, much much more, much more and maybe the ones that do make it maybe they just they're just lying. They did have extra help and they know they learned it all by me. Self completely self taught coder and all I did was read the Java SDK docs. Dustin Vidrine 30:05 Yeah, good luck. With that 1% in the world, no, Trevor Page 30:10 there's always that, you know, point 1% or whatever. But yeah, for the vast majority of people, you're gonna struggle, you're gonna need help, you're gonna need support. One way to do it, yes, obviously, it's through boot camp. But that's not the only way. But having said that, I mean, so you know what, you went through the boot camp post. So you finished a boot camp, you graduated, you got your final project done, you hit the job market? Let's talk about the job search and how frustrating or simple and easy and painless it was where on that spectrum, did you fall a little bit of Dustin Vidrine 30:40 both? So starting out, you know, right out of graduating, I guess it was tough. I couldn't even get a phone call, couldn't even get you know, I'm shotgunning applications trying to get someone to say, hey, or even looking at me, right? This, I think the markets flooded and you have to really stand out. There's a lot of jobs, but there's also a lot of junior devs that want to get they want to get in. And that's huge. That's that's makes it difficult. You need to stand out. So that was the hard part. The easy part to that side of the spectrum is networking. Talk to a couple people, like, for example, I've shot probably nowhere near some people, I know some people who did hundreds of applications. But I think I've gotten around 3040, maybe 50, most less than 100 applications shot out. No, no feedback. Every you know, two days later, three days later, we moved on to another candidate. It's silence, right? It's kind of shooting in the dark. Well, you network networks with one or two people. And they say, you know, there's an interview setup. Or not, I felt like I'm not the first interview out. It was kind of, you know, I don't know what to expect this my first interview after applying to, you know, 40 plus jobs, right, get the first interview. We're gonna, we're back in two to three days. Well, the next morning, second interview set up. Okay, that was quick. That's pretty good. Make me kind of boosted confidence, right, because the first one was like, I think I did good. second interview, I felt like I crushed it. And then the next day, I got a verbal offer over the phone from the recruiter. So it's like, I literally shut applications out of left and right network with one to two people. And now I have a job offer. So the key to not only learn to code, and practicing and actually get skilled, because you need to know the materials. Well, you can't just have built a To Do app, like my interviews, were grilling about concepts and systems and details on the systems and on the projects and why using, you know, how I used it. And then some abstract things about each concept that you would only know about using the right, you won't really get that just reading some or watching some YouTube tutorial. So kind of going back to what I was saying. Networking was the book that is for me, because literally no other applications that are saying were responded to in a good way network one or two times and then boom, maybe I'm lucky. I don't know. But this had failed for me. Trevor Page 33:07 I think we'll get more into what so what does networking mean, we'll get there in a moment. In terms of data I love data I'm all about data from what I've seen is typically you send out maybe 100 applications to jobs, you might get a phone call and be invited into an interview once more. So in other words, that's called a 1% conversion rate. So 100 at bats equals one interview. And that's pretty good. If that if that's your current. If you are currently in this process, and you are applying for a job and you're listening to this podcast and you're frustrated, and you've sent out 99 applications and haven't heard back Well, yes, statistically speaking, you'll probably hear back from one for one interview for every 100 applications that you send out. Now, that's assuming you've done everything else, right, that's assuming you have a pretty good resume, that's assuming you have a pretty good portfolio, that's assuming you did all that stuff, right, you'll get one out of 100. In other words, not a very efficient way to land a job, but it's possible, not very efficient. So the success that I've seen for people getting jobs has usually either been completely passive. In other words, they just have a LinkedIn profile, set up with good keywords on it and a link to their GitHub profile. And some recruiter happens to stumble upon them and invite them for an interview. Completely. That's how I got my first job is completely passive. Now it wasn't to be a coder, I got invited to a job that was let's call it a getting your shoe in the door type of job. And then from there, I was able to get my programming job at that company. So you know, I've talked about that before, it took me five and a half years to get my first job. So the the point of just spraying and praying is what I call it, right? Use applications and pray that you'll hear back it's possible, not very efficient, and you learn that so what's more efficient is leverage your network. So let's talk about that. What is what does that mean I networked because that's a very broad term. Right? What specifically did you do? Dustin Vidrine 34:59 So what I did If I found those different companies in my area, because you know, there's some some remote jobs, but some are hybrid. And I think you increase your chances whenever you can commute, you know not having to relocate. If you're willing to relocate, that's great. But I wasn't. So I was looking for thing for companies in my area that could either do remotely or commute to sew up my percentage of actually landing a job or finding a job. So with that, I found a few people on LinkedIn who worked at companies reached out just to make conversation, see if we knew the same people because it's a small town, right. And if they could point me in the right direction, and tell them who I was what I'm trying to do finished, I just finished the bootcamp and I'm trying to get in the market. Either they could help me or maybe they can point me to someone who could, which ended up being pretty much what happened. So this person is 2530 minutes from me, they pointed me to a friend of mine, which I didn't know at the time works at the company I wanted to get in with. So I texted I have their number. I texted him. Hey, man, I know you worked here. No, I started here eight months ago. I told him what I was trying to do what I would have done and here I am, can you help me or point me in the right direction. So we went have coffee that literally 20 minutes within the conversation meet me here. Let's go have a coffee and talk about it. So what he does is point me to his recruiter which got him on, got his emails set up, you know, setup as nice message. Basically, same thing, what I've done, well who I am, what I'm trying to do. And then this person calls me to three days later, just to fill me out. And I guess you could call it culture fit neat. But check me to see if I'm just shooting in the dark or for actually have some skills, right. And then he told me, he'll get back with me. And that was probably a week later. I didn't hear anything, shoot an email, don't hear anything like oh, man, this one fell off. Then literally the next day after that. I got a first interview invite. I was like static, it's like, oh, this is happening. I went from dead silence to now we have something positive happening. So but the moral of the story is networking, reach out to people locally at businesses you want to get in on maybe they can point you in the right direction. Maybe they know somebody personally, maybe they personally can help you at least kind of put you somewhere on someone's desk, like their resume your resume on their desk or whatnot, just to kind of get some eyes on you. Because clearly, the other path of just shooting, spraying and praying and shooting in the dark wasn't working for me. Unknown Speaker 37:29 But it's not. It's not Dustin Vidrine 37:31 the chances are much greater when you talk to someone with human Trevor Page 37:36 wares. And here's the tip, one good takeaway here is you have to know some people would be intimidated to reach out to someone a stranger on LinkedIn. Right? Well, you have to know and get past like, you might think some feelings you might have is oh, I don't want to bother them. I don't want to like they're probably very busy. They don't want to hear from me. So then therefore I won't reach out and and talk to that person. But what you have to know is if the person you're reaching out to is a recruiter, it is their job to recruit. Right? And they will be ecstatic. If you are a great candidate, and you just landed on their you know, on their plate or lap or whatever the expression is, and then they successfully, you know, hire you, they're going to look like a rockstar to their employer. So and sometimes they get paid for that outside, they get bonuses and stuff. So recruiters want to recruit. So don't by any means don't be shy to reach out to recruiters and they're human beings and they're going to want to stay you know, the worst that'll happen is they'll ignore you. The second worst thing that will happen is they'll say, oh, you know, we don't have any jobs available at the moment. But hey, we'll keep you on file or something. And then you follow up. So that's a second most important thing that you said, Dustin, is you followed up. So many people in the bootcamp currently shoot their shot once hear nothing and then give up. Right, right, which I defined as failure. So you need to follow up the expression that is said and nice in the entrepreneurial circles is the fortune is in the follow up. And it's exactly the same thing here. Just because someone didn't reply to the first email that you sent them means absolutely nothing. Do you know how many emails and messages and text messages and I am inundated with on a daily basis? If I like there are I can name 50 occasions in the past week where I have ignored my own wife. So you know, if somebody ignores you, it's okay. It doesn't mean that they're not interested this, the people are only not interested. If they tell you no, or go away or stop bothering or they're not going to say that they're going to say, you know, oh, we don't know. So yeah. Don't be afraid to reach out to people. If anything, they're going to be happy that you did if you're qualified if you're if you're someone who you know, like Dustin now has the skills, is able to answer the questions is able to show up and deliver the skills that they are looking for. Right his skills were matched to the job that he was offered. And they were how Ready to deliver the offer. And in my opinion, he is going to excel in his job because I just know this industry, I know what companies want. Dustin is going to be just fine. So yeah, those are two takeaways. You got to follow up don't and don't be afraid to reach out to these people. I don't know if you want to add anything else to to that. Dustin Vidrine 40:17 No, that's pretty good. It's pretty straightforward. It's simple. Say it to say that but it's, it's challenging. You know, I'm nervous. I didn't want to bother anybody I didn't want to this person is not even going to read the messages, right? But you just got to something you got to do. You just got to take initiative in it and execute really? Well. What are you gonna be where I am now, you know, or wouldn't be where I am now is just still trying to shoot resumes out there and hope them something bites, right. So that was a game changer is really is to reach out and talk to people, even human being human. Don't just hop on your keyboard and shoot resumes. Trevor Page 40:51 What's what's that's a good way to put it. What's more painful, right is sending a message or just continuing to be either unemployed or stuck in a job that you absolutely hate. Right, what's more painful, right? I just send the message. So that that for sure is something I see students struggle with, because I've struggled with it myself. So anyway, we try to do our best in the bootcamp to make that as easy as possible. But yeah, okay, so cool. Now I don't I obviously you can say no to this. Do you want to talk about the actual offer that you got? Or would you rather just not say anything about it? So yeah, it's a job offer. It's good. Dustin Vidrine 41:19 So no, we can cover some things. Actually, right. Before this setup, I was filling out the actual official HR written offer, I guess you want to call it so it's, it's with CGI. And if there's any in your areas of anyone's listening, it is an international company, I think they're based out of Canada from right to remote, think when I say remote, mostly remote, I think four out of five days or remote one day to go in and update your laptop, your equipment, get the latest security, whatnot stuff, right. And usually, that's on a Friday, and everybody's kind of relaxed, according to what they tell me. So Friday is kind of like the chill day, which everybody goes in the office, meet and greet, hang out, do a little bit of work. And at home, rest of the days are remote. But for me, my role is going to be a Java developer, of course, and then I'm going to be sent to some training in middle of May, which will be more Java stuff. And they told me, I'm going to learn their tools, the way they do things, their process, their workflow, and it's about seven to eight weeks long. Of course, I'm paid full time, day one. So it's not like I'll you know, taking a cut and pay until the training is over whatnot. So it's full pay full time until the training is over. And then I'll be placed on a project. And then also I'll have pretty good benefits. Also, there's unlimited education doesn't, there's actually an employee portal where you can go and learn pretty much anything you want. And it's flexible. So they told me if I wanted to move into more front end stuff, if I want to get away from Java, and I want to do more further and faster learning through the portal, talk to my manager, tell them what I'm interested in, and they will push to get you where you want to be, they're not going to hold you back. So what I thought was awesome, the flexibility to do that pays pretty good in my area of Louisiana, which is not a super high income area, you're going to start with around 65,000 a year, or at 65,000 a year. Like I say, if that were remote was awesome for me, I would have took a pay cut it just the remote port, but get both. So it's a win win. Yeah, of course, all the health benefits and whatnot, and vacation time and stuff possible. You get some stock options, and matching 401 K, etc, etc. But Trevor Page 43:26 all the goodies and that says this is your one, right? So a lot of people a lot I should say a lot. A lot of aspiring coders, if you will, will focus a lot on that first job, that first salary, and then everything is dictated on it for and I've said to somebody, the first salary does not matter at all, my starting salary for my first coding job, I think was 35,000 Canadian dollars, which is like, I don't know, 30,000 or less US dollars. But if you adjust for inflation, maybe it's like $40,000 You know, it's it doesn't matter. Because now I don't know what I don't even know what I make, but it's definitely over 150 Is what I'm in that ballpark right now. And as as we've talked about previously, I've received not offers but you know, definitely interest in in offers for over 200 So it's the first salary doesn't matter what matters most about this first job is the experience that you're going to get that will then catapult you forward in the rest of your career. Right But having said that, 65k is a great starting salary man. Dustin Vidrine 44:29 Sit behind the desk right here where I'm at, Trevor Page 44:31 right so great. Oh, you guys are. This is self serving. I wish my boot camp or a boot camp existed back when before I did university because like I said it took me five and a half years to get my first job. So four years after university probably 15 to $20,000 per year of that four years and then six months of unemployment and then one year of bad employment. In other words, working a job I didn't want to work and then finally I got a job as a coder. So you know to do it in What did you like? How long did it take you to get this job offer after? Dustin Vidrine 45:05 Two months? Trevor Page 45:06 Two months? Yeah, that's what we see, you know, somewhere around there is about about right in terms of the data. But Dustin Vidrine 45:12 if you think about it, what blows my mind is I went from working in the chemical plant to a complete career change and Unknown Speaker 45:19 eight months in about it's insane. Dustin Vidrine 45:21 It's less, can you have a baby roughly can't have a baby. That's changed my whole career, right landing something I want remote, decent pay for a start, you know, zero years zero in a pretty good start for me. Trevor Page 45:34 Yeah. And CG is a great company. Like there's, there's some companies out there that are a little bit predatory, that that offer up. I won't name names, but a CGI is a great company. So those kinds of opportunities are great. So now I'm realizing that I'm almost at time and these conversations go so fast. Is there anything usually I'd like to ask? Because anything in closing anything? Any advice? If, if there is a a Dustin 1.0? Right now, who's listening to this podcast, who is currently you know, eight months behind where you were, you know, like, what would you say to him? Or to her? Like, is there anything? Any advice? Any anything that's on your mind that you would you would say? Dustin Vidrine 46:10 Sure, I'd say stay disciplined. And remember why you started this in the first place? Unknown Speaker 46:16 Why did you start this in the first place? With a career change? Dustin Vidrine 46:20 Something I wanted to do, I found interesting, and I found a little pattern in it. And get to build stuff always like tinkering with stuff, which was why I was always in the tech field was always some kind of technology, gadgets, whatnot. And this was a way to do it from the ground up with software side. Yep. So I was Trevor Page 46:36 I concur. I also love to tinker and build stuff. It's so cool, again, to get paid to do this is it feels like cheating. But I've said that so many times. So I won't say it again. Wicked. So thank you very much, Dustin, for for joining us today, would you do you want to like sometimes also say, Hey, if you want to get in touch with Dustin, would you want people to like reach out to you and like ask you questions and stuff? Dustin Vidrine 46:54 Or Absolutely, it helps anyone network. If I can help anyone that we're sure. If I was you're in your shoes, and you needed someone to reach out to, I'd be amazed that this person will listen to me. So yeah, we can reach out to me on LinkedIn or Facebook, whatever. Trevor Page 47:08 Something we all post, maybe a link again, with your permission, I'll post maybe your LinkedIn profile in the show notes for this for this episode. And yeah, they want if you want, they want to reach out and chat with you. That would be great. I mean, I'm much, much obliged that would help me out because then I don't have to talk to them. They can just talk to you. As you're paying Dustin at this point. So wicked. So thank you very much for taking the time to do this. And yeah, I can't wait to hear I can't wait to hear where this goes from here. So I want you to stay in touch with me. And you will you'll stay in our little slack group. I'm not gonna kick you out. No, I usually check in every, you know, maybe six months or 12 months or something and just see how how the progress is going. Because I've loved that part, too. So thank you very much for taking the time to do this. And yeah, you want to talk to Dustin? Check the show notes. And yeah, thanks very much, man. Dustin Vidrine 47:52 Absolutely. Thank you, man, have a good one. Trevor Page 47:53 All right. So thanks, again to Dustin for doing that interview. And hopefully you have received a lot of value from some of the stuff that we talked about in our conversation, you know about how the magic and the fortune is in the follow up of these recruiters. Networking plays the key role when it comes to the job search phase. Don't be afraid to reach out to recruiters, don't be afraid to to, you know, connect with them on LinkedIn, don't be afraid of them saying I'm sorry, I don't have any positions for you. You know, you're gonna miss all 100 of the shots you don't take right. That's the old saying from whatever it was Gretzky or something. And don't just spray and pray, right? Don't just send all your resumes out and apply to you know, 1000 different jobs? Sure. That's one way to do it. It just takes a long time to do it that way. So yeah, those are the biggest takeaways and also obviously, time management and dedicating yourself you saw, Dustin was able to dedicate himself with a wife, a child a full time job while doing a college curriculum, and the boot camp and he still managed to finish the boot camp on time and get get a job. So the discipline that's required there is substantial. So it's you have to ask yourself, you know, do you want this? Is this something that you really want to achieve? Now I can speak from first party experience here with Dustin. Trevor Page 49:14 He struggled, he struggled through the bootcamp. There were times when, you know, we had chats together where he was really confused. And we had I had to walk him through some some extra coding examples and whatnot. And, and he asked a lot of questions. And, you know, this is he struggled, this was not something that came very easy to him, that he just, you know, trot along through, he put in the work. And some people out there think that, Oh, if I just show up, everything will work out and to some extent that's true. You do need to show up, but you need to stay dedicated and you need to, when you get frustrated, reach out and ask for help. Okay, that's the extra bonus tip here that I'll give is is when you hit the wall when you hit the point where you think that there's just no way that you'll ever be able to understand this concept of this thing, or this bug that you're stuck on, or this project that seems like Mount Everest or something. Whenever you feel that way, and you hit that, quote, unquote wall is what I call it, you need to reach out and ask for help. How, how else has anything done in this world? You ask for help, right? It's done in a team of people. It's not just one person that accomplishes everything in this in this world. You know, the, the person that I aspire and look up to is Elon Musk. I'll be it you know, he makes all the headlines these days, all this crazy stuff. But Elon Musk did not do everything all by himself, right? The Elon Musk is was the visionary. And he was the one who laid out the path and who set up the frameworks and the systems to follow and who held people accountable. But ultimately, it's his team that is able to get the job done. Right. And that is what we do in this bootcamp, right I play I try to play the role as best as I can of leader and, and, and paving the way for you and holding you accountable through this boot camp and whatnot that we provide. So I tried to put all those things in place the systems, the, the procedures, and the the community and the accountability in place, so that you are armed with all the tools that you need to go out and do great things. Because that's all I want for you. At the end of the day, I want you to do great things. Cool. So the great things in this case is learning how to, you know, learn, get this new skill of learning how to code and being able to code and be able to create things from scratch and be able to, you know, take something that's just an idea and turn it into a reality in front of you on the screen that can be used by potentially millions of people, right? That's so cool. And it literally can change and affect the lives of millions of people. Okay, I know, the when you go to work for a big corporation, you might think, oh, you know, this, I'm working for this big evil corporation. And who knows, maybe that's true. But the stuff that this big corporation does is effecting affecting millions of people, right. So it's so cool the the potential reach and impact that you can have, I'll be it, hopefully not through an evil company. But the doors that you can unlock are incredible. And obviously the lifestyle and the the pay and the benefits and everything that comes along with being a coder and talk about how spoiled we are. So it's incredible. And it is, and I wholeheartedly congratulate Dustin for the hard work that he put in. But I just want to say, Dustin was not hugely special, right, he was able to do it because he had all these systems and all this help and all this structure in place, and he was able to be disciplined about it. So if that sounds like you, if you want this bad enough, if you want to finally, do something where you are able to push the ball forward and actually make progress towards getting a job, right? Maybe this is your this is your dream, this is something that you go to sleep at night thinking about how can I just, I just want to get a job as a coder, I hate my job, I hate my current one, I hate my boss, I hate my this I hate, I hate the commute, I have to make a hate, whatever it is, hopefully it's not all from a position of hate. Hopefully, it's from a position of, hey, this sounds like it'd be a lot of fun to do because it is. So hopefully, you know, there's a lot more of that than the hate side of thing. But hate the hate can be a big motivator. So hopefully you're someone who is saying I want this. And I'm willing to do what it takes to get there. If Dustin can pull this off with all the things that he had going on in his life. You know, I think that maybe you can too, as long as you have the same underlying desire to unlock this stuff, because it's entirely possible. Okay, guys, he went from pretty much knowing nothing about code to getting a job as a coder in eight months. Okay, that is it. It's not even all that special. Because like I said, if you have the drive, if you have the desire, if you have more than just motivation, everyone has motivation at the start. You can do this, right? You just need this a system in place the support to help the community, the reassurance, the hand holding, and a good teacher to bring it all home and put it all together for you. So that's what we offer in the bootcamp I've talked about already. You don't need to know all the details, coderscampus.com/bootcamp or even just go to coderscampus.com I'm sure there's a button there somewhere it talks about the boot camp. Check it out. We try to make it as affordable as possible, as you heard Dustin, say, like we are far less expensive than most boot camps out there not to say that we're cheap, right? It's not cheap, because this stuff is very expensive to hire the staff. As I said in this in this episode, it's far easier if I could just do online courses than running an entire boot camp because we're doing running entire boot camp. I need an entire set of staff to help and pay their you know, pay their salaries and put food on their table and it's not cheap, right? So, but we try to make it as affordable as possible. And I don't want to be evil myself and I don't try to make these huge profit margins and laugh my way to the bank. I generally just want to help you guys out and just want to see you guys succeed. get jobs because having interviews like this with Dustin, and there's more to come. It's just such a highlight of this entire process. It is my most favorite thing. It combines my two favorite things, right? Creating content, you know, doing podcasting or YouTube videos or whatever, as well as huge success stories and seeing people's lives change. So I just it's it warms my heart and I love this stuff. So hopefully you can be the next success story, check it out coderscampus.com/bootcamp, and I can't wait to see you in the next episode. Take care of yourself. Happy learning. And bye for now. Intro / Outro 55:32 Thanks for listening to this episode of the coders campus podcast. But before you go, Trevor has a favorite ask you. In order to keep these episodes free, he'd love for you to leave a rating and review the podcast on iTunes. Just go to coaters campus.com/review to leave your own rating and review of the show. So if you have 30 seconds to spare right now, please help out by leaving a rating and review via coderscampus.com/review It will ensure that you continue to get these awesome free podcast episodes each and every week. So if you'd like free swag, head on over to coderscampus.com/review Happy Learning The post EP58 – From Electrical Technician to Software Developer in 8 Months appeared first on Coders Campus .…
 
In this episode we'll talk to Yasiin, who is a graduate from the Coders Campus Bootcamp. We dive into his story about how he started his coding journey as a Restaurant Manager, and went through two Coding Bootcamp before landing his first job. Yasiin shares a ton of great insights and tips for beginner coders who are hoping to get a job, so be sure to listen to the whole episode. Interested in starting your coding career? I'm now accepting students into an immersive programming Bootcamp where I guarantee you a job offer upon graduation. It is a 6 month, part-time, online Bootcamp that teaches you everything you need to know to get a job as a Java developer in the real-world. You can learn more via www.coderscampus.com/bootcamp Episode Transcript 0:09 Welcome to the coders campus podcast, where you'll learn how to code from one of the best teachers in the industry. Whether you're an absolute beginner or a seasoned pro, the coders campus podcast will teach you what you need to know to master the art of programming. And now, your host, Trevor page. 0:28 All right, ladies and gentlemen, fellow coders. Welcome to this next episode in our coders campus podcast series. This is a slightly different one. And as promised in the in the last episode, I am now delivering this interview. So this is an interview between myself and yes, seen who is one of our bootcamp graduates. And, yeah, I just want to sit down and have an honest chat with your scene about his experience, a little bit about his story, and to understand sort of what his path is, and was in terms of learning how to code, right, this is not going to be a sugar coated story, this is not going to be one where I asked him to pretty up all the details. I'm just asking him for his honest feedback and his honest opinion about his journey thus far through not only my boot camp, but another boot camp as well. And sort of what obviously, the outcome was in terms of, you know, the job and whatnot. And, yeah, this is a really good raw interview, I have not edited anything out of this interview. So you can just sit back and enjoy it and hear a story unfold and in before your very ears, if you will, from someone probably just like you who started out in an industry that has nothing to do with coding, and made the transition into becoming a software developer. So without further ado, let's jump into that interview. So yeah, I guess we get started by by sort of, you know, getting an introduction to who yes, seen is getting to know a little bit about your background of who you were sort of before, I guess the boot camp that I run before you join that boot camp, even start give us a little blurb. Yeah, who are you? What were you doing? So my name is Yasiin. I'm a junior developer right now for a company called Brooklyn bedding. It works in manufacturing industry. Before I got started with my journey, I actually was working in restaurants, I worked restaurants for almost 15 years of my life a long time, and managed to complete a server bartender did everything you could think of in a restaurant with a cook at one point in time when I was really young. Besides that, I actually decided I wanted to do something different in life. Um, after managing for a while, I wasn't being challenged enough to like, just keep myself going. And the brain, they were very monotonous job of coming in at same thing every day. And, you know, you always think yourself, you want something a little bit more. So that led me to a boot camp, which was a boot camp, local University of Arizona, and they had their web development boot camp, which is great to start off with understanding your HTML, your CSS, a little bit of JavaScript, and they touched on Java as well, which was great, because it had to give me a good foundation to understanding what what actually coding was, you know, a lot of times you hear about coding, you don't really know what industry or what you're doing, you hear about these coders making six figures, and it's always going to be a guaranteed job, you go to your boot camp, you come out, you make your six figures, which, you know, that does happen for some people, but it's not for everybody. That's something that it takes a while to build up, you have to keep working at it. That's something I found out just, you know, I'm taking a boot camp and trying to get a job right after and you're like, Oh, you don't have an experience. So then you got to grind yourself out, you know, experience wise was great. I actually after my first boot camp, I didn't get a job right away, I actually took another boot camp and then I was able to get a part time job was a hourly wage, which was great, I found that to be the most developing wise, because the kind of challenge meant will the real world like working experience, because you don't really know if you've never worked in the industry before, what it's going to be like to actually work on a project. That's something that you got to you have to actually be in the industry and working in it and you have to get first job or internship or, you know, pretty much I would say take the first job you get no matter what the pay is just because you want that experience experience is gonna make you 10 times better than what you were. I wasn't very confident in the beginning. That was something that was kind of lacking just because you don't really know like you've never worked in industry. I worked in restaurants my whole life. Like I don't really know what happens and the development industry. Now I get to see the days and days out and you know it's a different side of things. 5:01 Yeah, so that's a really good, really good. I have a few million questions that came up as you were talking. So in terms of so you didn't restaurants for 15 years? How How would you rate yourself in that period when you're working with restaurants? In terms of your technical abilities? Were you like one being, I don't even know how to operate or turn on a computer and 10 being Yeah, I worked at Google or something. Well, you say your your skill set was, you know, while you were working in the restaurant industry, well, my skill set was never my skill set around computers with great because I went to I grew up in on technology engineering school. So from grade school, pretty much from first grade all the way through high school, I went to engineering technology, magnet schools, which are they're based, that's what they're teaching you the basis. So our foundation is that and we learn everything else with it. So I could operate a computer, I knew how to surf the web, I knew how to, you know, look at different stuff we mostly use like Excel sheets. And I remember in through that through, I even want to hit college, we took I took one of the classes we built, we built a website, but I think I was using Dreamweaver at the time. So a bunch of stuff. And I didn't really know what was going on. And the way they built made it build a website wasn't like building a real website. It was, you know, some of the questions I remember, she was like, I forgot the thing, but just changed it a little icon on the top of the tab page. That was one of the questions we had to do for one of our assignments, VIP credit for that, which, you know, that's something that stuck in my head, just just doing that this little stuff. So I had experience to it. But I didn't realize at the time before I started software development, what experience I had until I actually got into it. And that's that's pretty common. Most people have familiarity with a computer, they know how to surf the web, they know how to use Google, you know. So that's sort of what in terms of my boot camp or what I run, those are some foundational things that you just sort of have to have, if you don't know how to use Google, you're you're not in the right place, you got to go learn that skill first. So that's good to hear. And in terms of you mentioned, you took a different boot camp, first through the University of Arizona. And first, how long was that boot camp? If you remember, the boot camp, I want to three was 24 weeks, put in four weeks, about about six months. That's about that's a life length, the size boot camp. That's that's a good size. And you learn about some of the fundamentals of the web. So HTML, CSS, you mentioned Java, did you do like a little bit of JavaScript there? Yeah, a little, mostly JavaScript, Java was just touched at the end, we didn't go too deep into it. And we were already building projects. And we worked a lot with React what they had as the foundation they had to build in. And and so you did the six month thing you did, you know, essentially a front end development that's in terms of the industry. And you know, knowing what I know, that's sort of what that job, potential job could be as a front end developer. But you said you graduated, then didn't get a job. So can you talk more about that? Why What Why do you think that didn't happen? Why do you think you didn't get a job? Were you looking for like, a two weeks? And then you gave up? Or was it six months? Or sort of how long was that journey and that kind of thing. It was mostly just building my LinkedIn and applying to jobs that popped up. And, you know, a lot of experience when you look at it says, oh, I want five years experience and two years experience. And, you know, sometimes it's a two year experience, but then they wanted a senior developer and then you know, you look at everything. And no matter what, when you apply to that a lot of no responses were you know that we need a little bit more experience, we're looking for somebody more experienced and you get recruit, a call will pop up and the recruiters work and help you out and try to get the job. And then they would call you and be like, Oh, that the company wants more experience. They want you to work more at everything. That was just something where it's like, I guess, you know, when you first started off six months of learning, any type of development of boot camp, you're not really into it unless you had prior experience and you are kind of working towards something else. That's, that's pretty like a blocker yet. Yeah. So from my from my side, just get shedding some light on that problem. This is, again, I don't want to I don't want to generalize, but from what I've seen is for front end development, a lot of boot camps just focus on front end development. It's it's a it's a great skill set to have it is it is entirely valuable. By no means wasted effort to learn front end development. But if that's all you know, that's what a lot of people, there's an oversaturation of people in the market who have that skill set. There's another skill set that you can tack on to that, that makes you full stack that makes you well rounded, you know, on all on the full, you know, in range of being able to develop an application. When you're a full stack developer developer, there tend to be more opportunities at entry level, from what I've seen. So that's sort of my one critique on a lot of boot camps is if they just focus on front end. Sure, some people can get a job. Like you said, Some people can get six figures out of the boot camp depends on where you live. And those are stories that you hear amplified. Yep. Right. And it's 9:54 amplified and you're like, I'm gonna do this I'm gonna be that guy. I'm gonna do it. You know, and you sometimes you're discouraged because you're not that guy. And you're like, who's getting these jobs? And you know, and then I realized now who's getting the jobs and those people, they don't just come right out of the boot camp, they have more experience. They they either know somebody in industry looking to hire or, or they've already got their foot in some other way. Like they work for a company that's actually hiring. This was them pushing us up to the next level. But it's, it's, it happens, but it doesn't happen all the time. That's a run the big false is false things I've learned. So I know, that's marketing, right? That's the marketing the marketers doing. So getting people into, you know, their, their, their boot camps. And, you know, so that's, that's also one question you can if you if you're a student watching this, and you're considering joining a boot camp, a good question to ask is, yeah, don't tell me the top the best stories like what's the average case? What's the on average? What are your you know, graduates get? On average, what is your graduation rate? On average? What is your placement rate x, you know, that kind of thing. So, right. That's it, sorry, good. Yeah, upon graduation, that, I would say you got to keep working out things. I say, take your job, take a job no matter what it is, and work at it for a full year and just devote yourself even if it's not too high paying, I was working two jobs at the same time of working still in a restaurant as a server. And I was still doing the part time because that meant more to me to my development of getting myself to the point where I wanted to be until I can land that big job, which, you know, eventually now I've landed a bigger job higher salary, and you know, it's great. But honestly, like, to start off like, you can't expect yourself to be making the six figures expect yourself to make the real the you know, look at where your market is how much the average pay is, I know I'm in the Phoenix Arizona market, that market, the average pays from 60 to 75. For start off with that's average of a developer, if you can get that great. If you get a little bit lower than that, don't be discouraged. Take it and just devote yourself and pick yourself up. Because eventually that next year, you're going to have the recruiters calling and recruiters are gonna be inbox you and you know, your LinkedIn, you're gonna be like, Okay, I got another recruiter call, I got another recruiter call, take the recruiter call, you know, I didn't, I didn't plan on taking a recruiter call for his last job I got, I actually kind of blew them off couple times, and eventually was like, Okay, this person's hitting me up, let me talk to him for a moment, I ended up talking to them and ended up getting a job getting job place with them. So that was great. It was It wasn't expected. I had other plans, I was, you know, building a new portfolio that was about to launch some new new apps on my portfolio. And I was like, doing great. And I'm like, alright, alright, and then it just happened before I even can launch the whole thing. So there's, you know, there's, there's other ways that people will notice when you're working at something, and you're using your GitHub, and then they look at things like that, if you're updating your GitHub and you're pushing to it, and they're seeing all the stuff go in there, they know that you're making the effort, and you're pushing towards it, if you're not using any of those tools that are out there, they're gonna look at you and be like, this person's not really showing any work, you know? Yeah, it's, it's important to when it comes to coding, it's it, I think it's important that you like it, right? Some people can, you know, slog through it, and they'll, they'll hate their life. But I just don't think that's a very, like, we have such a, you know, relatively speaking short time on this earth, you gotta sort of enjoy what you do, right? You do, oh, you got not every day, you're gonna like every project, no, like, that's gonna be something where you're doing something monotonous. You're like, oh, and then working on the front end, and you're just trying to make it a little bit better. And every time you put a code in, it breaks it and you got to keep going back at it. And you you're working on the same thing for a week. And you're like, I hate this. But once you're done with it, you feel success. Gear six, it's a success. And you're just happy. The fact that you actually finished the project, you're like, I move on to the next one. And that's experience you're going to you're going to take with you and be like, Oh, I remember this last time. I took me a week to finish this. I actually, you know, sometimes you you store your code, like what you want, if like, what the problem was, I write everything down. And I'm like, Okay, let me put it this block. So if I have this problem, again, I know exactly where to refer to. And I got a little template for myself to help out. Which is awesome, which is great. You know, it's that's the process right? It's everyone thinks that the I shouldn't say everyone I got it. I'm over generalizing, but there is a common myth, or I don't know how to say, beginners will look to an expert and say, oh my gosh, there's so much better than me, like how am I ever going to achieve that level? Right? And, and that level takes a decade or more to get to when you know, these senior level people who look like who make it look effortless. 14:19 When you when you take them and go back to month one, they're probably gonna look exactly like you and I've said this to some of my students before where where maybe to you too, is you guys are so much better off now. Like at the very beginning and in your careers so much better off than I was when I like I had a I graduated with a university degree right I graduated with this thing that's supposed to be the holy grail of getting you a job and I could not get a job and I once I finally did through a streak of luck and things falling into place I finally was off offered a job And I was terrible at the job. I it was atrocious, my first anyway. So people always go very hard on themselves, right. And it's just you have to be more gentle on yourself because this stuff is extremely difficult to learn. And you guys are in like now with YouTube, and with you know, and learning and boot camps, like I didn't have any of that. And anyway, you guys are so much better off now. And that sort of ties into what I want to talk about next, which is you sound like someone who you just dove right into boot camps. You did one boot camp and then another boot camp and then did a job and blah, blah, why not go the self taught route? Why did you? Or did you try to do it self taught on your own like YouTube and podcasts or blogs? Like, can you talk more about to the reason why I felt the bootcamp I like the experience of having just the mentor who could help me out with things, I have a question I have someone to talk to you when you're doing self taught, you don't have the mentor all you have is like, you know, whatever for me, you hop on your Free Code Camp or, or you hop on for whatever, like your YouTube or anything. And the YouTube was discouraging, because you're watching people on YouTube, and they're building stuff and you're like, I'm never going to get to this level, I'm never going to get to this level, and you're having the same question the same problem over you're like why he'd asked myself the same question. Like, I'm never gonna get there. You know, now I look at YouTube, I look at it differently. And I was like, how much did this person rehearse in order to get this video on there? You know, that's like being a person who puts it up on YouTube. Like, you have to like rehearse if you're not doing it live, or you're seeing all the mess ups. Like you rehearse that, like somehow, you're not just building unless you are the best developer in the world. And you could just develop things that easy. You're gonna make mistakes for every developer, no matter what your level is here. You know, that was one discouraging thing. Like I tried the YouTube I tried to self taught and it just didn't work out. Like as I wanted it to it does, like even today, I still do kind of teach myself certain things. I'll hop on YouTube, watch a video, and I'll build it with them. And I'm like, Okay, I understand what I'm doing wrong now. So it's like, you're not really just the bootcamp gives you a great foundation. It helps you out and gives you those extra questions that you wouldn't be able to ask anybody. I'm the videos that I find on YouTube or videos that I'm like, looking for a specific thing to do. And I need to go find it somewhere on YouTube within somebody's coding video. And I'm like, Okay, well, they're building this, I know, I'm building something similar. And I'm going to look for what I'm doing. And I'm going to patch that together, just like you would go on Stack Overflow, and you're like, Okay, what am I looking for? I need this exact same thing. But you're never gonna get the exact thing you're building, but you need to kind of patch things together to make everything work. 17:33 And that's, I mean, that's, so You took the words on my mouth, it's again, we didn't we didn't rehearse this beforehand. This is you know, so when, when you have the skill set, so yes, you're someone who now has the skill set, right you are, you've been exposed to coding, you have a year or two under your belt, a professional experience. And you can now utilize that skill set that vast amount of knowledge and experience to be able to watch YouTube and listen to a podcast or that and you use it like a scalpel. Right? You go in there. And that's that's exactly that's those. That's what the tools are best used for. When you use them on the brand new beginner side of things and expect to be able to just watch videos. It's like you said it can be demotivating because it's like, Well, wait, I'm not getting this. And you feel like you should be getting it and you get you hear these stories amplified by all these people. You know, I'm a self taught coder, and I got a job for $100,000. And it only took me four months. And it's like, there is so much more to those stories than what you're hearing. Again, I'm generalizing. But I've been doing this for I've been teaching people how to code for 10 years. I haven't seen that unicorn yet. I haven't seen someone who could just go and do it all on their own. Not saying that you can't. It's just it's it takes a lot more than a few months to do it on your own. And yeah, so if you're getting discouraged if you're someone who has been watching YouTube, and you know, trying to do it on your own, and you've been hitting, you know, roadblock after roadblock, and you feel like you don't understand this stuff, and that you'll never get it and everyone smarter than me and like, that's normal. You are 100% normal, but there isn't really, you know, every single person who I can I can say with confidence, every person who has the experience now and who who knows what they're doing. can listen to the words I can say and say oh, yeah, I totally relate. I Yeah. 100% That's true, like, totally relate to it. It's totally So yeah, if you're demotivated and what just know that it's entirely normal. And in my opinion, and obviously, it is a biased opinion. What you need is you need support, you need support from an expert who's been there before who can teach you this stuff, who can, you know, translate it in different ways and watch your face and see how your face is reacting to the information coming out of the mouth and have that teacher you know, say okay, doesn't look like you're getting that you're seeing maybe can I explain it like this and like that's where that's where the work happens. That's where the level ups happen that and all these Working on projects yourself. But anyway, I'm getting I'm getting into the weeds, that might be a good transition to talking Well, how was your experience with the bootcamp that we have here coders campus? All the good, good. It was, it's a great group camp, like, I didn't have a foundation in Java. So Java was a brand new language that I was actually learning and pushing towards. So the Java side kind of like, it was it was harder, because now I had to refocus myself and everything that I learned to take this some stuff, but not everything and push it towards, of course, you know, the language is crossover, and you can't do everything exact same way. It was a great experience, to be honest, like, I felt it, it prepared me more to get a job than my other bootcamp, the like, it was just the other boot camp. Don't get me wrong, it was great. It gave me the great foundation. But what you're looking for is how to get a job in the real life examples of things. And like, like you said, Job is everywhere. Like, you're going to get a job if you learn Java. And that's something for sure. I didn't really have anything bad at the bootcamp, I felt it was great. I honestly, I didn't really the projects were project. Tough. They weren't, they weren't too easy, where, you know, like, my other product with other bootcamp, were pretty easy. Build your frame out and change the color of this, this was more, you're challenging your brain and you're thinking a different way. And you're learning at the same time? And I'm curious, um, this is, you know, I didn't plan to ask this question. I'm just curious to see. And again, don't, I'm not trying to, you know, make you give the flowery and and politically correct. And be honest, truly, with the job that you have. Now, first of all, what's your the title in? Do you have an official title in this new job? Software Developer software development? Yeah. So that's another thing that people get really fixated on is titles. And like, it's one of my first jobs or second job I got, I was called a software engineer. And I was like, Wait, I don't have an engineering degree, like, what you're calling me an engine. And it was like, that's, you know, they throw these words around every 22:04 company, every company I've learned has different titles like software developer, one or software engineer, one, it depends on the company itself, and what they're actually putting. So if you even though it says software engineer, it's, it's different. Like, there's different terms for every company. So don't think like, oh, you can't find an engineering job. If you look at everything on there, and what they're looking for, if you match up with it, apply to it, even though you're not a software engineer, I would say though, on your resume, change it to software engineer match with their matching. So don't just keep it as like, oh, I software developers, you know, make sure you're matching what they're matching. If your skill set matches their skill set, you know, those are things where you have to do you can't just be like, I'm gonna apply to this at this this level, or, you know, I understand I'm, I'm still a junior developer, I'm not a senior developer. I don't call myself a developer, I call myself a software developer. That's what I do. I'm not a junior, I'm a junior, but I'm not a junior. I'm a software developer, I do the job, like, you know, it's not like I'm working to do the job, or I'm still in school. You know, I say, while you're in school, call yourself a junior developer, because you're still learning. You know, as a software developer, you you are a software developer. I agree. So now in terms of your job now, and this is sort of where I'm, I don't know where this question is gonna go. And if it blows up in my face, that's fine. So you're, when you take the experience you got from, from the bootcamp that you did with us with coders campus. The experience you got there? How well did it match up with the job that you're working at now? Is it 80% crossover and 90% 50%? Like, the skills that you need? How close was the match? So it's, it's weird, because, of course, you have the Java bootcamp, they looked at more of my react side of everything, because their application, their front end runs on React, and they look at Android, which I have no experience with Android. So I'm learning Android on the fly as it is right now. They did like that I knew Java because they actually work in C Sharp as well. So I'm learning C sharp, and I'm learning the Android Studio at the same time. So because I knew somewhat of the Java side, they're like, Okay, he can match up towards a C sharp, so it kind of it correlates with certain things, depending on what market you're in. Your lead developer who works on the product, he'll know exactly what what can actually move forward, what they're what they're doing what. So what you're saying is the skill set that you learned in the boot camp, and the fact that I you know, we we go hard on let me teach you this one language that is, you know, not the most easy language and not the most difficult, but it's a little bit on the harder side, the Java language tends to be the harder side, my my thesis and what I base my education off of is let me teach you Java, because it's pretty difficult. And once you know that language pretty well, you can apply it to almost any other language fairly successfully. And I don't again, this could have backfired, but I wanted to see what you said. He just said, Yeah, I use Android, which you didn't learn in the boot camp, and I'm maybe using C sharp which you didn't learn at the boot camp, but now you're getting paid to do that. So that helps to dispel the myth that you absolutely Like, you applied to that job, or maybe they they went to you and your skill set didn't match 100%. Right? Not actually, this job was a recruiter found me for this job, right? I didn't apply to hire you. But they found me because they're like, your skill set matches what we're looking for, like, you know, I know, my boss. Now, what he gives a recruiter with probably skill sets of matching, because when they had my resume printed out, when I walked in for the interview, he's like, these are skill sets. And there's three people sitting in front of me, and I'm, like, nervous, and they're talking about everything. They're like, what are your skill sets? Us? Can you tell me more about your skill set on Java? And they started picking everything out? Oh, you're my, you're my sequel, you know, of all these things, trying to pick it out to know what I knew on that point. You know, I told him I didn't really know C sharp, but I knew Java, I know that Java can relate towards it. So I think I could I could figure it out at that point in time. They're not looking to see if you have you know, everything 100% They want to know if you're willing to figure it out. If you're going to be that person who's like, I don't know this. Right now I have a seizure going into work today, I have a C sharp question. Because they're asking me to update some stuff. And I'm like, I have no clue where this is supposed to go in the code. I've read through everything of understanding what I understand. But it doesn't make sense to me. And that's okay. Because believe it or not even saw, like myself with 15 years of experience happens to me, too. I'll walk into something and I'm like, I have no clue what's going on here. And that's just software development software. But I have my notes that I took yesterday while I was trying to do it. And I'm gonna go in and be like, alright, this is my problem. This is what I need to do. Am I looking at the right thing? And can you point me in the right direction? I don't want the answer. I need you to point me in the right direction or, or tell me I'm doing the right thing. And to get me to get me there. Hey, now, and I want to dive into the actual interview part of this whole thing. Now, I guess this is I was gonna say, how many interviews did you go on before you got the job? But I guess they approached you, right? 26:50 Um, they actually even through the interview process. I actually never got the recruiter call. It was really weird because the recruiters like, I'm setting you up to have a meeting with me, we're gonna talk and the recruiter eventually cancelled the first one because something happened and he was busy with something. I was like, okay, no big deal. He's like, so he rescheduled me, and it said interview and I, I assumed it was with him, the recruiter, but it wasn't actually the recruiter, which was really weird, because like, hop on the phone, I think, as a recruiter, and I've been emailing back and forth. And so I'm really casual dissection of what's going on, you know, just like he's my best friend, because we've been talking for a while. And I didn't realize it was my boss, who is it now that I was talking to him, and I was like, Oh, my God, I'm talking to him right now. And I didn't notice this till like the last two minutes when he said his name again. Because in the beginning of the call, when we first got on, our connection was just really bad. We both introduced ourselves, we didn't realize ourselves, so we're like, oh, and he's asking these questions. I'm talking to him. And then he's like, Well, let me get back to the recruiter. And then we'll, we'll see, we want to do next. I'm like, Oh, my God, what? Oh, yeah, it was it was it was kind of shocking at that point in time. At that time, I was like, I just freaked out because I was too casual. And I wasn't business oriented, you know, that I displayed a little bit more confident because one recruiter it was, it's easier to talk to, you're gonna have more confidence when you're talking to actual interview person, you're going to be nervous, you're sweaty, you're freaking out about everything. That that interview process to me, it was like, just display that for the next interview. I was like display confidence, the same confidence you had just go in there being relaxed, got a little nervous when you have three people come into the room and you're like, ah, snapper three people in here. I'm just gonna be one person. But at the same time they it was it was different because they didn't ask me to pull up my laptop. They didn't ask me all these, you know, leetcode questions or anything, they didn't, they didn't do any of that stuff on this when they wanted to know who I was, what I was doing and what my struggles have been throughout coding, and they want to know if I'm going to be a fit for them. They've already screened me in the beginning, they seen my resume. They they seen I pushed up to GitHub, they they knew I had the other job that I was working on for about a year's time. So they they already know that they want to know who you are, and if you could fit for their company. This isn't like a big company like Google or anything like that. But you know, it's a it's a startup now. So the company called Brooklyn bedding, they actually just merged with helix, which they all make mattresses and they sell them across the world. Brooklyn bedding is a main manufacturer, so they manufacture all the foam and all the coils and everything for beds and either the beds in the box you buy on Amazon or if you go to your Costco or Sam's Club, you have a lot of their stuff in your stores, you'd never even know. So it's it's a big company, and that just merged and even 10 times bigger than the office on East Coast and the West Coast. Now we're teaming up with helix. So it's, it's great to see a company that now I believe like three years ago, they only had like 200 employees now they have over 400 employees. So they've doubled in size and but it's great. They have a brand new facility that they're building out here for everybody and and it's a growing company is a growing startup and yeah, that's really cool. I think it could be great just what they're doing and how they're cornering the market. They have new technology like just on the manufacturing side that no one else is doing right now. So and it's it's interesting because it's like, when I think of a mattress company, I don't think 400 employees and I don't think software developers, right. So you know that that was a weird thing. I was like, yeah, what are they going to do is like, so I took the interview, not knowing I was like, This is gonna be weird, then we'll see what they're having me do. I was like, I don't know if this is really a software job. And it was 100% You know, knew exactly what, what I wanted to do. But you know, it gave me that great experience. That's so good. Yeah, it's just there's so many opportunities out there. And anyway, I don't want to repeat myself with how you know, amazing it is to be a software developer. But there's so many different types of software developers out there work for different companies. It's it's not just your your Google, your Facebook, your your Amazon, there's, there's everything else as a smaller independent market is healthcare. There's a bunch of software developers for them. And like, you know, the market is huge. So no matter what industry you want to go into, it's into the need for it. And you so I forget you say it's a local, or is it a remote or is actually local. So the office is here in Phoenix, Arizona, which I go into the office every day, I can work remote someday, if I want to work remote, I prefer just to go in the office because it's right now starting off new, it just makes it easier for me to ask questions and be around everybody and get to know the team and not the one remote guy who's who's on the other side. That's right, exactly. Cool, man. Now, I had a question teed up here for you know, do you have any advice for aspiring coders, but you already given some pretty darn good advice in terms of all these tips? Is there anything else that you can think of in terms of like, if someone is where you were, I don't know, a year or two ago, they're considering a boot camp? I don't know Is there anything else that you could suggest to them or, you know, 31:38 take a boot camp, I would say take a boot camp, I have nothing about bad about a boot camp. But if you're gonna take a boot camp, be prepared to not get a job right away, but push towards getting that job, you can't just take a bootcamp and expect to get a job, you have to know your stuff. So that means you're going to be putting in a lot of work, putting in a lot of work and a lot of hours, and you're going to make some sacrifices. You know, my social life kind of died at that time, I really have no social life. Now, just because I made that sacrifice few years back. And you know, I'm still every day I wake up, I think about coding, I go to bed, think about coding, you know, you have to do it every day, you have to programming, I think right now is the longest where I'm programming for like 10 hours a day, sometimes because I go to work for eight hours, and I come home and still coming back home and programming for two more hours trying to finish up things. And, you know, eventually I'll figure out my balance. But right now, you'd have to put the work in, if you're going to, if you're going to take a bootcamp, be prepared to put the work in and dedicate yourself to your development, because it's your development. It's not software development, it's your development in software development. That's such like, that's also I don't like, this is a very, what you just said, is a very large piece of this puzzle. I say this a lot, I get on my soapbox and talk about motivation. Everyone is motivated at the beginning. Everyone sees the end goal, and they say, Wow, I can't wait to be a software developer, get a job, be able to, you know, make eventually six figures or whatever, and it's gonna be great. And I'm gonna have flexibility and it's gonna be cool. And, and it's, it's fun, and it is motivating, right? And then they get 30 days into something like a boot camp. And the motivation probably disappears pretty quickly. The reality of the task, and the mountain in front of you, slaps you in the face and shoves you onto the ground. And then you know, anyway, so you need more than motivation. And the word, the terminology I use is dedication, right? There's, there's motivation, and then there's dedication, there's drive, right? And that you're not going to succeed if you don't have that. So I'm glad that you pointed that out. And it's a ton of work. It's a ton of hours, a ton of work. It's very frustrating. But in the end, I don't know, I think it's worth it in the end. But I think it's worth it. Honestly, I ended up there all my development was during COVID two, so like the first year was before COVID, and then COVID hit and then I took the drop, like my, my hourly job at that point in development. So it was like a three year process that I took to dedicate myself COVID started it and I've kept working COVID hit, you know, and it it was downhill at that time. And, you know, a lot of stuff shut down around me and I was like, Okay, well, what can I do right now, while I'm not working? Because of course, we're quarantining everywhere and I took the second boot camp. That's why I found coders campus is it was one of those I found online and like, Okay, this is the online boot camp. Let me try this one out, dedicated my money that I had was like, let me start taking this and, you know, and make my payments and take the bootcamp and I think it was a great experience because during but what else was I gonna be doing during that time? I needed something to keep myself focused. So it was just learning so and now you have a job and are you comfortable sharing the salary that you were offered or you don't have to if you don't want to so? It's not it's not I don't want anybody knowing especially if somebody else you know, I worked with, let's say That's a, you know, if you let's say there's a fallen in the in the average rain for the area. Oh, honey, yeah, honey, there you go. Yeah, so and then average rain. And that's again, I'm rival or Phoenix is supposed to be for that average windows. Exactly. So that's a good good piece to end on is is, you know, set your expectations, it's going to be hard work, you're going to be drive, you're going to be more than motivation, you're going to probably feel like you're, you're going to want to quit, because of how hard it is, Oh, I thought about quitting so many times. But you know, I couldn't quit, I just, there's something about it that just like, I don't like to fail at something that I'm putting my heart towards. And to me, that's my dedication, you know, I always tell myself, I will, I can't, I must, which is my little three things, I will do this because I can do this. And I must do this because I want to do this, you know. And if you keep yourself in a motivation, where you have your own motivational speeches, you know, every day is not going to be perfect. There's some times I'm like, I don't want to have my computer today. I can't touch it. I can't touch it. I'm just my brains fried, you know, and there's days you're like that and other days you hit you touch your computer, and you're the best you seem like you're the best coder ever. Everything comes to you naturally. And then you have your roadblock. So you have to just dedicate yourself towards it. Then the big the big thing. I love it. Yeah, cuz like anything. I mean, it's not there's not unique to coding, there are plenty of other careers and professions where it's gonna be hard ladies and gentlemen. So you gotta you gotta have you got to like it. I think, you know, you got to have a curiosity, you got to have something there above just motivation at the beginning. So anyway, easy, everybody be making $100,000 a year six figures if it was easy, but everybody's not making that because it's not that easy. You just got to dedicate yourself. 36:35 I would say everybody that's a coder, once they hit, you know, five or so years. And I think six figures is very likely once you're above five years in. That's my 1000. That's my goal. Right? There is like getting to that point five years in, this is why I want to make so yeah, I'm, I'm there. I'm pushing it. So yeah, I think you'll get there typically, from what we see is we see about a $10,000 a year increase. For every year that you're doing development work, you tend to see about 10k and then eventually that levels off. So you can't you know, it's not like you're getting making 150,000 more than the average, if you have 15 years experience, no, eventually it caps off. But yeah, that's what we're sort of what we're seeing is between 10 to maybe 15,000 is the average raise per year. So it's just good data for you to know and understand once you want to get going. So don't just focus on the first job and the first salary for the first year, because that's only one year of your career, right. So because I say take the first job, whatever you get just right here, you're going to be a fit and make sure you're ready to learn. You're not you might not be building everything you want to build, you might just be doing the monotonous tasks, but just just do it, just do it and you're in, you're in it, you're gonna still be doing your own developer on the side, your own projects still, but just take the job and get the experience of actual working in the industry. So good. I think that's good. I think we get in there unless there's anything else you has. No, that's it but wonderful. So thank you yes scene for sharing your your honest feedback on the journey. And yeah, hopefully we as coders campus now, my my marketing message to you, without any hype is yeah, if you've seen message sort of resonates with you, if you can see yourself in him, maybe you might be a good fit. So I don't know, wherever this video is, there's probably some way to take the next action like clicking on a button to talk to one of our admissions advisors, or clicking on a button to apply or whatever go for it doesn't cost you anything, you can dip your toes in those waters and see if you might be a good fit, because you might be a better fit, then you give yourself credit for as I've seen with many students in the past. So thank you guys, for being with us and sharing your time. And hopefully Yeah, we'll get an update at some point in the future. Perfect. Yeah, thank you. 38:49 Thanks for listening to this episode of the coders campus podcast. But before you go, Trevor has a favorite ask you. In order to keep these episodes free, he'd love for you to leave a rating and review the podcast on iTunes. Just go to coderscampus.com/review to leave your own rating and review of the show. So if you have 30 seconds to spare right now, please help out by leaving a rating and review via coderscampus.com/rubio It will ensure that you continue to get these awesome free podcast episodes each and every week. So if you like free swag, head on over to coderscampus.com/review Happy Learning The post EP57 – From Restaurant Manager to Software Developer appeared first on Coders Campus .…
 
GitHub link here: https://github.com/tp02ga/FunWithStreams In this episode we'll talk about IntStreams and why they're useful in Java. IntStreams can be used to replace a common looping mechanism as well as provide a very helpful utility for gathering analytics on data in a non-verbose way. Episode Transcript 0:09 Welcome to the coders campus podcast, where you'll learn how to code from one of the best teachers in the industry. Whether you're an absolute beginner or a seasoned pro, the coders campus podcast will teach you what you need to know, to master the art of programming. And now, your host, Trevor page. 0:28 All right, ladies and gentlemen, fellow coders. Welcome back to this next lesson in our series in the podcast where we are diving into streams in Java. So thanks so much for joining, as always, always a pleasure to be on this side of the microphone, and hoping to deliver lots and lots of useful tidbits to you. So today, we're talking about into streams, tricks and analytics within streams was the title I came up with, because it sounded neat, it rhymes. So deal with it. So anyway, what we're gonna be covering is essentially, what is an in stream? How is it different from a regular stream in Java? When would we use it? What are some, you know, nifty little tricks that we can use it for. And as well as you know, getting into more data analytic stuff, which is something that, you know, Python gets a lot of a lot of notoriety for, using, you know, data science and whatnot. But the, hey, there's some tools in Java for data science as well. And I'll be it this one is very simplistic, but helpful. I've used it before for, you know, analyzing data and giving reports and whatnot. So yeah, without further ado, let's dive into this topic, while I pull up my example. So as always, if you're following along with the examples that I'm posting, you can do so via coderscampus.com/56, that should redirect you to a little blog post where I will include the GitHub repository that I'm using, within within that GitHub repository, there should be a package called com.coderscampus.intStream. And there's a couple of files in there that you can look at that will, you know, represent the code that I'm going to be talking to you about right now. So yeah, you don't have to go there. Now. It's okay, if you're driving or something or doing dishes and or working out, you could just listen. But just remember, this code is available, if you want to go back and look at it for reference on your computer, to coderscampus.com/56. So basically, what is an entire stream, we'll start there. So in streams are a variation of a stream in Java. But more specifically, it is dealing with, as it says, In the name integers. So it allows you to do more specific operations, you know, chaining methods and whatnot, like we're used to doing with streams where you, you know, you do a dot filter, dot this dot that or whatever, with an industry that allows you to do it unlocks a couple of specific, you know, dot, essentially specific methods, specific functions that you can call that you can invoke that do some helpful things. So in in stream is just, hey, we're dealing with integers here. So the only valid object that you can be streaming over the only valid, you know, collection of things that you can be streaming over is an integer or an integer set of integers. Or I suppose I should say, a collection of integers to be more specific. So, yeah, if you're not using integers here, if you're not streaming over integers, then you can, you cannot use an int stream. Okay, that's the first thing to understand this int stream is just for integers. Streams are for any objects. So long as they're not, you know, primitives. Well, I guess I shouldn't say any objects. Streams are good for any collections. But into streams are specifically for integers. Okay. So having said that, the example that I have here is using sales data. So it's something very simple. There is no you know, this is how we do it the old way. And this is how we do it the new way. The old way of doing this is awful. If you had to code this out yourself, it would be tons of lines of code. The finished product here in front of me is is like what 24678, you know, about eight lines of code versus it would be, I don't know 50 or more, I don't know, off top my head. It would just be a lot of work to do this all yourself. 4:43 So yeah, we boil it down to eight lines of code here. But basically what we're doing here is we're looking at sales data. This could be any data, I just created a sales data object class, more specifically, and it's just a plain old Java object inside of it is just two properties. Restoring one is the date, the date of sales, and the other is the amount. So the number of sales made on a given date. Now it's an integer amount, it's not a it's not $1 amount. So it's not like a double or a big, you know, into big, double big. What does it anyway? Big decimal, it's not a big decimal or a double type. It's just integer. So this represents some hypothetical number of individual units sold on a given date. Okay, that's really what we're what we are working with here. But it's simple. It's a simple it has a date and an amount as an integer. The date is a local date type. So we're using Java, what is this Java eight? Yeah, Java eight type, sorry, my phone is making notification messages. If that was if you have an Android phone, and you're looking at your phone right now, that was my phone. 5:52 Okay, so just a date and an amount was get with getters and setters, that is what is inside of the sales data class. Very, very simple, just storing two things. So having said that, I also have a little method that I created to just populate a list of sales data. So I'm just populating an arbitrary number of sales data objects and putting them into a list. In my code here, I just have it generating 100. So all this is doing is randomly generating integers and randomly generating dates, popping them into new sales data, you know, objects, and throwing those into a list. It's just a list of sales data that has data inside of it. Now, getting into using an entire stream, we can start streaming over our data, which we just do the normal way we always stream which is we say sales data dot stream. Okay, so nothing, nothing earth shattering, here, we're just doing a regular old stream. So what this will return to us, when we do the sales data dot stream, is it is going to return a stream a normal stream of sales data objects, okay. But what we can do here is we want to turn this into an int stream, because we want to do some statistical analysis on the data. Okay, specifically on the int data, the integer data, so what we can do is we can do for a regular stream, you can perform a dot map to int, map to int. So we've talked about map before a couple of lessons or episodes ago, map is just where we take, you know, something coming upstream. So like, you know, like an object or whatever. And we are, you know, sort of narrowing down to a subset of properties for that, you know, those collection of objects that we're iterating over, okay, that we're streaming over. So, this allows you to narrow into, essentially a different it maps it to a different data type. Normally, we use it to narrow down to a specific property of the objects that we're streaming over. In other words, for this one, we want to narrow it down to just the amount the sales data amounts, because remember, I said the amount was stored as integer, the date in sales data was stored as a local date. So again, sales data has a date, and amount. But what we want to do is you want to narrow down to just the amount. Okay, so that's sort of what map can do map can narrow down to individual properties, or can can completely transform into something, you know, entirely different. It's up to you and how you want to use map. But that's map, we've already talked about map, I want to talk about map to int. So it does the exact same thing. The only difference is what the dot map, how dot map Dipper differs, not dippers, difference from dot map to int, is that map returns a stream of the objects again, and a while stream of the output of whatever it is that you're transport, mapping it to the map to int returns an int stream. Okay, it's not an int stream of anything, because it's we already know it's of integers, right? So it's not an int stream of something, it just returns a plain old in stream because we already know it's a stream of integers. So anyway, that's what we're dealing with here. So map to int, translates transforms the data coming upstream into an int stream. But then we need more data here. We can't just say map to into the magically it'll work. You need to tell it what property from the objects that we're streaming over. What property is the property that we want to use this industry for? How do we want to stream over these integers? So when you tell it what property we're streaming over here, data the individual property? So as I've alluded to before, the property that we want to stream over is the amount property because for sale data, the amount is an integer. Okay, so we can say dot map to int when we're streaming. And we pass in the, the get amount is the the getter method that exists for sales data. So you pass in get amount. And that is what we can use to stream to create our int stream from. Okay, so we pass in the get amount. So this you want to pass and get amount, you can either use the normal lambda function syntax where, you know, the left hand side is because it's the getter method, it will take nothing, I believe, I have it written out the other way. I'm using the double colon syntax. Let me just see if it works. If I use the double, double round brackets. 10:46 Oh, no, I need to pass it in, right, you need to pass in the I shouldn't say double round brackets, you're passing in the sales data from above. So you can call it S or something. And then you can say s dot get amount, right. So when you say dot map to enter, you're passing in a lambda function, it takes the input of the object that's being iterated over being streamed over, which is the sales data, you can call it whatever you like, called call it S. And then you can say s dot get amount on the other side of the arrow function. Alternatively, you can just say, sales data, the, the class name, so sales day with a capital S, double colon, is used to give you access to the methods, right, so you can say double colon get amount, right. So that way, you don't have to have the lambda function, you just sort of pass the pass the function. And it's another way to do the same thing. They both do the same thing. So in my example, I just use that double colon format. So again, sales data dot stream, dot map to int, and pass in the sales data's get amount function. Cool. So now what do we have downstream? What could what sort of dot operations can we do now that we've turned it into an entire stream? There's tons of there's, there's a tons of stuff, there's tons of stuff. One of which is called summary statistics. But I'll get there in a moment, you can do on an in stream, because we know we are streaming over integers, you can do a dot sum, because we simply know we're in there's integers here, we know we can sum up the integers, you can do dot sorted callback to the last episode, it will just know how to sort and insert an int stream because it's just integers. We can what else we can do a max or a min on it, which returns optional int, because Optionally, you know, what if there's not a maximum in there, what if it's empty, or I don't know, maybe there's two that are the same thing. Anyway, you can do max and the min, you can limit the number of, of entries you want to stream over if for some reason that is of use to you, maybe you can sort it and then limit to like, I don't know, the first 10s. Anyway, you can, you can do a bunch of stuff, you can count, you can get an average, you can also convert it to a double stream or a long stream. Okay, because there's not just an industry, there's also double stream and long stream. And pretty much all the stuff we're talking about with an inter stream applies to double stream and long stream as well. Okay. So having said that, there's tons of stuff you can do with an in stream that is specific to iterating over integers. And that's where my mind when I first learned about in streams, it just, it was too much. When I was learning about streams, I was like, well, to stream, there's in stream and double stream as long stream like, what are all these types. And these are all confusing. So don't be too overwhelmed or confused by these types that we're using here is just a stream of integers. And all the only reason why we have a different type there is so that we can unlock these additional functions that I just spoke about that apply specifically to integers that we know we can apply to integers. Okay, because if you're streaming over users, you can't do like stream over users and then say dot average, give me the average user. What the heck does that mean, right? There is no such thing as an average user. Like, you need to define that. And it doesn't make sense. Or give me the maximum user. It's like, what, what does that mean? Give me the maximum and minimum users? I don't know. That doesn't make sense. Conceptually speaking, you need to give me more context. I'm missing context. But if you say give me the maximum integer, and the minimum integer, right, or the average integer, that makes sense, you know how to how to find the maximum integer in a given list of integers, or the minimum integer in a given list of integers or the average value of all the list of integers, right? Those conceptually make sense. So that's what an int stream unlocks. Because we are iterating over a stream of integers. We can do all these extra things. Now, I want to dive into what I spoke about the very beginning there of the all the different functions that we can use on in stream and that was something called dot summer. Statistics. So what does dot summary statistics do? It returns another type called int, summary, statistics. What the heck is an int summary statistics type? Well, all this type is is just a class that allows you to get access to the Common Data Analytics. Remember, I promised I was gonna talk about analytics today, tricks and analytics, these this event summary statistics type, or class gives you access to the average account, the max, the min and the sum all in one place. 15:39 Okay, it gives you access to the average account, the max, the min and the sum. So it gives you access to five sort of aggregation type data, things, great for analytics, right? Great for reports and whatnot. So in three lines of code here, although it took me a long time to explain the three lines of code, in three lines of code, we can now get access to this event summary statistics object and get the count of the data, the max of the data, the min of the data, the average of data and the sum of the data. In other words, give me a count of all the sales that happened, give me the maximum sales, give me the minimum sales number, give me the average sales number, and give me the sum of all the sales figures together. Okay, so you can get all five of those things and print it out to a report. Cool. So that's sort of what inter stream allows you to do from a statistics or a analytics data standpoint, right? It allows you to do all that stuff, which is nice. It's very convenient. And like I said, to do all that statistics yourself to do all those number crunching things and processes and looping and if statements and, you know, switching out the maxes and the mins and trying to calculate a sum and get an average and account like doing all that it just is a lot of work. But we can boil it down to three lines of code now, stream it, map it to an int, get the summary statistics done. Cool. So that is the analytics or statistics point up or part of this conversation. The other part I said is you can do a trick, there's a trick that you can do with an industry that might, you know, impress your mom, or your friends. And that is you can use an input stream to generate, essentially a range of numbers that you can then iterate over. In other words, this is another way to do a for loop. Because you needed another way to do a for loop. You know, you can do a for loop with the old, you know, boilerplate way, which is, you know, for Indi equals zero, i is less than whatever i plus plus, there's that syntax for a for loop. There's also a for each loop, where you can do, you know, for, and then you have the data type, and then the individual object and the colon, and then you do the collection of objects. There's that concept of the for each loop. But then there was this idea of streams, regular streams, where you can do a dot stream, and then you can do a dot for each as well. Right, so you can do a dot for each but and that's fine. That's that's another way to do a for loop over a collection of objects as a stream. Cool, nothing wrong with that. Very helpful. But what if you want to do a different range, but you still want to do that same syntax, you want to have a range from instead of maybe doing all of them, you want to do from zero to 10, specifically, or zero to some number minus 10, I don't know whatever the whatever your little heart desires, you can use int stream to do that. So you can generate a range using int stream dot range, okay, into stream dot range allows you to have or gives you two inputs, so you have dot range, and it takes two inputs, the inclusive integer and the exclusive integer. Okay. In other words, this is from like zero to 10. You know, if you want to go from zero to 10. In other words, you want to iterate 10 times you go from zero to 10, exclusive, or zero is inclusive, 10 is exclusive, so you really only go from zero all the way to nine, and that you stop. That's what the int stream dot range will do for you. So you can do zero to whatever, there's also another one. Instead of range, it's called range closed. What that does is it allows you to do the instead of the end being exclusive, the end is inclusive, right? So instead of you want instead of wanting or having to do zero to nine, now you can have a choice to do one to 10, right, it's again, you could always do this with any other for loop structure. But it's just it gives you you know, you can do it with an in stream. So you'll see this in my code. I do Just to show off that I, you know that I know how to do this, you can do in stream dot range, you can see that the code when I'm generating my sales data with all the random numbers and stuff, I use an input stream to do that range. And then I do all the stuff to, 20:14 you know, go through, and you know, from zero to whatever, completely unnecessary. It's entirely unnecessary. But it's, it's just another way to do a for loop. In this case, we, I don't have a collection of objects to iterate over. All I'm given is as the input is just hey, the number of sales, you know, number of the total number of sales objects that I want our sales data objects that I want to create. That's the input to this generate sales data method that I'm talking about on my screen right now that you guys can't see. But the function that I use to generate sales data, the only input that it has is an is an integer, which is the number of sales. So you can't do like a stream, per se, on that you can't do a normal stream on that. Because it's not a collection, you can stream on a collection. But in this case, we don't have a collection. So we would have to write out a regular old for loop a for it, i equals zero, where i is less than number of sales, i plus plus. So because I would have been forced to write that instead, I'm using in stream dot range, zero comma number of sales. So that just allows me to save myself from typing out the boilerplate for for loop right. Now, having said that, do you always want to do that? I don't know, I don't think there's a huge reason to do this. Other than, like I said, it's, you know, it's potentially more readable. It's, it's using or utilizing the functional programming paradigm. So you do int stream dot range, and that dot range will return an int stream, which I then use dot boxed on. Because what dot box does is it returns a stream consisting of the elements of the int stream, each boxed into an integer. Okay, so what that means is, is we're just converting back to a normal stream, instead of an in stream, we're converting back to a normal stream. And each of the elements now that we're iterating over, are available as integers. That's all. So we're taking primitive INTZ, and boxing them into integer objects, and iterating over them as a collection. So if you have a range of zero to 100, or something, you will get a stream of numbers from zero all the way to 99. And then you can do whatever you want with those, right? So what I did was I just did a dot map, and I mapped the integer to something completely different. In other words, I completely ignore the integer, the I in this case, I completely ignored it and just mapped it to generate a new sales data object and they collected all those new sales data objects, 100 of them into a list and return that list. Okay, so that's how I generated my sales data. It wasn't, you know, again, I could have done all this in a for loop. But when you use an event stream, you get to use, you know, dot map and dot collect. And now this dot box thing, which just translates from an in stream back to a regular old stream. Cool. So, yeah, that is the gist of an event stream. And again, you can more or less copy, paste, everything I've talked about here, into a double stream or a long stream. Now, there's probably some operations that are specific to doubles, or specific long's that are, you know, useful and whatnot. So those will be available there. But that's a simple Google search. You don't need me to go over every single one of those individually. I'm sure you are fully capable of looking up what those types of streams are and what makes them different from an income stream. Okay. So having said that, I will spend very few moments here talking about the bootcamp to close things off again, this if you're listening to this point, all this is able to be sponsored by the coders campus boot camp, available at coderscampus.com/bootcamp. This again, this is how now I'm able to move forward with creating all this content getting back to what I love. I love creating content. I love doing these podcasts. I love doing YouTube videos. Shout out to the YouTube channel. If you don't know I have a YouTube channel. Oh, please go and check it out. It's just you probably, as I say Google, go to YouTube and search for coders campus on YouTube and you should find me there. I've got a bunch of content coming out on YouTube right now. That is wonderful. If you have time to sit in front your computer and watch videos. So anyway, shout out to the YouTube channel. Go there subscribe. I don't have enough subscribers I have like 11,000 or something at this point. I want to get to that coveted 100,000 mile marker milestone. So if you could please do me a favor and subscribe and then reach out to about you know what is that 80 88,500 of your friends and get that subscribe. I've as well, I will be in debt, I will be completely indebted to you. I will you know what I will give you a free ride through the boot camp, if you can bring in 88,000 subscribers to my YouTube channel, I will give you a free ride through the whole boot camp, I will personally 25:16 bow down and anyway, yeah. So check out the YouTube channel and check out the bootcamp as well. So if your goal is to get a job as coder, I won't say anything else. But that it's a very, very compelling product, the students in there absolutely love it. I absolutely love doing it and seeing the students and the success that they get and the jobs they get and how their lives change, and so on. So that I think in the next episode of this podcast, we'll have an interview with one of our students, where he you know, completely raw, unedited, unplanned, I just sort of pick his brain, about his experience in the boot camp and give and he gives his honest feedback and thoughts about his experience of the boot camp and the outcome. So I think I'll be releasing that as the next episode, if not the next one, it should be soon. Check out that interview with one of my students. And I'm gonna be doing a bunch more of those interviews because I'm terrible at marketing. And I need to get better at marketing and getting students to, you know, I have prospective students, I have people like you listening right now, who reach out to me and ask me questions. And they say, Trevor, you know, there's not, there's not a whole lot on your boot camp. Right now, there's not a whole lot of stuff I can learn. There's not a lot of, you know, marketing stuff. And I don't see a lot of testimonials like what is it? Like? Is it bad what's going on? And is there I can, there's tons of people, I can pick that everyone would sing praises, I should say the ones who graduate we have about an 80% graduation rate. The 20% who don't graduate usually drop out in the first like 14 or 30 days because they realize that they bid off way more than they could chew with their schedule. And that's never a good outcome. But anyway, it's not because of the product is because the time commitment, that's why I try to do my best to seek out people who have the ability to commit the time and the effort to doing this bootcamp. Anyway. There's tons of people out there that will sing the praises of the boot camp and will say all the right things that you want to hear that you you know, because all you want, normally what everything that you want is to just get a job to be to get a job and to feel confident in that job. And that's exactly what the output is for this boot camp. Okay, it's not an easy process. It's, it's, it's grueling. I won't lie to you. And but there's tons and tons and tons of support built into it. So anyway, people say, you know, it's just a scam, like, you don't have anything on and that's because I am terrible at marketing. I'm a programmer, guys. I love teaching coding. And I love actually coding, I hate, you know, sitting down and writing out testimonials from students and like trance transcribing them. And anyway, so that's why I'm just saying, Hey, I'm gonna do an interview with these people that I can do that sort of comfort, that's a comfort, comfortable thing for me to sit down and interview past students. So that's what I will do. I will sit down interview past students, and you'll have long form interviews, to listen to, for testimonials. So you can get their raw, unedited, honest opinions about their experience. So having said that, please do check out the boot camp, if your goal is to get a job as a coder, and you've been trying to do it for like, you know, if you've been trying to do this for years, please, please stop trying, like, just join the boot camp, it is so much faster. And it's such a better experience, and so much less frustrating than trying to do it completely on your own. And you'll end up making more money in the long run. Okay, the boot camps are cheaper than trying to do it self taught. If it takes you more than 12 months to learn on your own. It would have been cheaper to just do a boot camp, okay with the increase in salary that you're getting that you will get. Anyway, okay, I will stop. I promised I wouldn't talk a long time and I'm already starting talk a long time. Thank you so much for listening. Hopefully, I will see you in the next episode where we are going to be diving into hopefully, like I said, an interview with one of my past students. And hopefully you really enjoyed that and I look forward to seeing you there. So take care of yourself. As always, happy learning. And bye for now. 29:02 Thanks for listening to this episode of the coders campus podcast. But before you go, Trevor has a favorite ask you. In order to keep these episodes free, he'd love for you to leave a rating and review the podcast on iTunes. Just go to coderscampus.com/review to leave your own rating and review of the show. So if you have 30 seconds to spare right now, please help out by leaving a rating and review via coderscampus.com/review It will ensure that you continue to get these awesome free podcast episodes each and every week. So if you like free swag, head on over to coderscampus.com/review Happy Learning The post EP56 – Fun Tricks and Analytics with IntStreams in Java appeared first on Coders Campus .…
 
GitHub link here: https://github.com/tp02ga/FunWithStreams In this episode we'll talk about how to sort a stream of objects using the “.sorted()” function. We'll also talk about the differences between using a stream to sort vs using something like Collections.sort(), which has been available since Java v1.2 Episode Transcript 0:09 Welcome to the coders campus podcast, where you'll learn how to code from one of the best teachers in the industry. Whether you're an absolute beginner or a seasoned pro, the coders campus podcast will teach you what you need to know, to master the art of programming. And now, your host, Trevor page. 0:28 All right, ladies and gentlemen, welcome to this next episode of the podcast. It has hit episode number 55. Now, always a pleasure to have you in well in your earbuds and me sitting in front of this microphone in my office. So yes, always a pleasure. Let's dive into the topic for today, which will be a continuation of the theme that we've been working on, which is streams. In this one, I want to dive into sorting, which is not too crazy. There's not too much going on here with sorting in streams, but it's an important thing to know about. And that there's time. If it doesn't take too much, then we can dive on into the next topic, which you never know. I'll see how it looks once we get there. So as always, this lesson or episode of you will is brought to you by the coders campus boot camp. If you are looking to get a job as a coder, we are constantly improving the boot camp, we are constantly bringing in new talent and churning out really the next generation of great coders. And I couldn't be more proud of the students who are going through the curriculum right now. So to all you students who might be listening to this, because I know you are. If you're still in the boot camp, keep keep on truckin. I know, it's tough, I know it's hard. If you have come out the other end, congratulations. And I look forward to seeing you in your future career. So if you're interested, check it out. coaters campus.com/bootcamp to check out all of the details there. So let's go into streams with respect to sorting. So before we had streams, sorting was done or achieved via one of two means in the world of Java, you can either sort using comparable or a comparator. I never know how to pronounce that word, I like to pronounce the tour at the end. So in the world of streams and sorting, it's much the same. So if you're using comparable comparable is an interface that you can implement yourself if you have access to the other class that you want to be sorting. So if you have control over it, meaning if you have created an object, and you wish to sort those objects, you can implement comparable within your objects class, and implement the compare to method that it forces you to override. In our example, we could have done that, but I'm just doing a comparator instead. Because, well, it's it's you can see all the code in front of us. So it's just a little bit easier to get the point across when use a comparator. But this is really, you know, six of one half dozen, or the other is the expression meaning it doesn't really matter which one that you go with, because it's still sorting, sorting is still sorting. So yeah, and this one, we're gonna be using competitors. And that's just like, you can see the code in front of you. So when you did it, quote, unquote, the old way, meaning before you had streams, how did you accomplish sorting? Well, in this example, I'm going to be having I'm going to have a bunch of user objects, the users will have the common things that users always have username, password, but it's also going to have a, which call it 3:36 a last login date. Meaning that this particular class called user has a property called last login date, which is just a date that represents the last time that that user logged in. Now, we're not going to talk about how to implement that functionality that is outside the scope of this conversation, we're just going to assume that that is already done. And we are just handed the data. So we're just handed a collection of these users that has the data prefilled. Now if you're following along with the code that I am making available, you can check it out. Whereas it coderscampus.com/55, I guess will redirect you to this particular entry, or post or whatever you want to call it. And I will have a repo GitHub repo there, where you can check out the code that we're talking about. In any case, if you're following along with the code, then great. If you're not then no worries, I'll do my best as I always try to do to explain it. But yeah, we have a user and we will have or rather a collection of users and the users will have the data pre populated so the code that I will present you with. I just wrote some code to generate users, so it just will randomly generate users with a random username and a random password and random dates. That represent the last time that they've logged in. Basically, I just look at what today is, when you're writing the code, it looks at what today is, that's the maximum day that you can, you know, randomly generate. And the minimum day is like 90 days ago. So no matter when you run this code, whether it's you know, today when I'm recording this episode, or you know, sometime in the future, it should always work. Cool. So it'll generate dates. For last logins, it'll generate usernames and passwords and everything, and it'll generate a list of users. And how do we then go about, you know, accomplishing our sort? And how are we sorting? So for these ones, I want to sort the users by the last login date, so I want to see a list of the ones who, you know, just a list of the sorted users by when they last logged in. But I also want to filter out any users that haven't logged in, you know, in the last 30 days, or prior to 30 days ago, I should say. So what that means is anyone who's logged in 31 days, or are further out in the past, I just don't want to see them. Only the users that I want to see recently who've logged in, those are the ones I want to see. And I want to see them in the sorted list. Okay. Again, why? I don't know, I just sort of picked out of thin air. That's, you know, who knows, maybe there's a business requirement somewhere that says I want to see a sorted list of the most recently logged in users? I don't know, maybe that's useful to someone. So that's what we're going for here. But how do we accomplish it? Well, without streams, again, it's going to be more verbose, right? Without streams, you're first going to have to filter the list based on the getting rid of the people who have logged in more than 30 days ago. So I have some code there to filter lists. We've talked about filtering before. Without streams, you just have to iterate through them, you need to create a new collection. While you iterate through the existing collection, you will insert into the new collection, all of the entries that meet your filtering criteria. Okay, that's essentially how you get it done. I don't want to go into that we've already talked about that concept before. So we will filter our list create a new one, a new filtered list with just the ones who have logged in no more than 30 days ago. So now we have our filtered list. And how do we sort a list? Well, you can use collections dot sort, this is something that was has been available for a little while I forget when it was created since 1.2. So Java 1.2. So for quite a while you've been able to do collections dot sort. And collections dot sort takes an input of a list. So you pass in the list, but then it's not going to know how to sort that list. Because it's it's a, it's a custom type, right, we have created the user class, the user type, so it's not going to know how to sort it. So you need to tell it how to sort it either using comparable that we talked about before, or using comparator. So we can instantiate a new comparator, which is the way I'm going here, instantiate instantiate a new comparator, which forces you to override the Compare method. And then you can put the code in to compare the log in the last logon dates for all the users. Okay, I don't really want to go into all the code there that's needed. But suffice it to say, it's, I don't know, a few lines of code, right. So in total, we're talking about what 1234567 ish lines of code here to accomplish everything that I've talked about. And then you can output you know, your list your filtered list of users. So that's sort of the old way of doing it. Now, there's not there's not that there is anything wrong with that. It's just a little bit verbose. You just have to spell it all out. And it's not very sexy, it's not very, you know, it's just not easy to read, so to speak, right? That's, we've talked about this before, streams, makes code much easier to read, in my opinion. And in the opinion of like all the developers who've ever used streams. So yeah, that's how you accomplish that task. Now one side effect that happens with the collections dot sort method, which is the old way of sorting. Again, I keep I say old way, only to say that this is not using streams. So this is the non stream way to sort you can leverage collections dot sort. There are certainly other ways to sort this is just one of them. The side effects using collections dot sort is it will mutate the collection, mutate the list that you are giving to the collections dot sort function. So it will actually mutate that list, right? So this is a this is called side effects. This is where, if you're not aware that this is happening, it can cause some bugs, right, you can accidentally change a set of data that you didn't mean to change. Or you can change it from the outside, right. So if you change it inside a method, it has also been changed outside of the method or the file. function. So there's just, you know, there's that side effect that you need to be aware of. Now, if you're aware of it, then it's fine. Because you know, okay, cool. I know that when I do collections dot sort is going to mutate the list that I'm passing in. And am I okay with that? Am I okay with it, mutating that list, if I am, if I am the no problem, if I'm not, I should create a copy of that list first, okay. So that's just that little extra bit of knowledge that you need to have knowledge, you need to have that knowledge in order to move forward and avoid any bugs, right? For those of you in the know, no big deal. So that's more or less the only thing other than it being verbose that that is sort of different between, quote, unquote, sorting the old way. So now, if you talk about sorting the new way, which is leveraging streams, again, it's less verbose. So with the streams here with the new streams, what we can do is, you can take your collection that you're starting with, which is I just called it users is the name of the variable, which is the list of whatever number of users that's, you know, randomly generated. So users dot stream, that's how we kick things off. Dot stream is how we kick off all the streams. Now we want to filter right, so we can do dot filter. And you can do that. 11:16 What's called the predicate I think is the word it's been a little while since I've looked into all these Yes, predicate is what you pass in. So the predicate uses returns a true or false, it returns a Boolean, based on the you know, function that you give it. And function that we're doing is comparing to see hey, when is the last logon date more than 30 days ago. If it is, then you return false. And if it's not meaning, if it's more recent than that, if it's within the last 30 days, you can return true, again, how to do that doesn't matter. Just know that it's filtering based on that if you want to check it out, check it out in the code, coderscampus.com/55. So cool. Now in the again, the old way to filter, there was a bunch of steps there that was needed. And the new way, we're just, it's one line of code dot filter, you pass in the way you filter, and then you move on to the next chained method. In other words, we just put another dot after the filter, so say dot, then you can do something else. This one you can do dot sorted. Okay, so this is the this is the, you know, comparable, I shouldn't use the word comparable. This is the equivalent function to collections dot sort. Okay, so you can say dot sorted. So on a stream, on any stream of objects, you can say dot sorted. And what dot sorted takes as an input to this function takes as an input is a comparator. So allows you to pass in a comparator. And since we're using fancy schmancy, lambda syntax, we can use the lambda syntax for competitors, which is just you, you you know, put your on the left hand side of the arrow function, you have your two inputs, because it wants to objects, right? Object one, object two, or user one, user two, whatever you want to call it. Okay, this is what it's gonna be using to compare. So as it goes through the list, to compare all the elements and sort them, that's what it takes it constantly, you know, populates those two inputs, the object one, object two, or user one, user two, whatever you want to call it, that's the left hand side of the lambda arrow expression thingy for the dot sorted function. On the right hand side of the arrow, is the actual comparison. And again, we had to do this above, we had I say, above, because the code the old code is above, we had to do this the old way as well. So this is not new codes, not something different, is just more concise. So same comparison, we compare last login for the object one to compare to last login for object two, and then you close the parentheses. So that's sort of the sorted function that you pass in. So first you stream, then you filter, then you're sort, and then you collect, stream Filter, Sort collect, dot, dot, dot, dot, right, dot stream dot filter, dot sort dot collect. That is how the sort of more functional programming syntax boils down. It's very readable. Okay, I'm streaming users, that I'm filtering them somehow. And then I'm sorting the ones that have been filtered somehow. And I'm collecting them to a list to a new list. So dot collect and redo collectors.to list. That's how we again, we've talked about that before. So you assign this to a new list of users, right and call it filtered users or whatever you like. So the difference here now now we're done. That's it. Right? You had those four functions that you call dot stream dot filter, dot sorted dot collect. We're done. And the difference here is again, not not a earth shattering difference and you know, we're talking But four lines of code instead of seven now, so it's, it's not as verbose, but only by three lines of code. But it's much more readable, in my opinion, right, the other one will take you longer to understand. But this one's a lot more readable. And there's no side effect, meaning we are not mutating the input write users. When I say users dot stream, and the dot filter dot sorted collect users is that original list of 10 users? It we are not mutating that original list because streams, leveraging functional coding, the functional coding paradigm, is that it you know, it doesn't mutate stuff, everything is immutable, everything is final, right? Meaning you can't, you know, mess around with it. So it's just part of the functional programming, you know, 15:51 I don't know handbook or whatever you want to call it, they try to be as immutable as possible. So what that means is, when we are returning, we're collecting everything to a new list, we call it filtered, or I called it filtered users is the new list that we return, which means that we did not change the original list of users. So that's, you know, it take that for, you know, if you if you wanted to modify the original list of users, you can you can just assign it back to users. Least I think you can. Let me try to do that right now in my in my code and see if it gives me an error anything. Users go live coding on the podcast, ladies and gentlemen, let me just play this out and see does it break anything? Well, sort of it? Yeah. Cuz I mutated the original list. The second test was based but anyway, fundamentally speaking, no, I didn't break anything. So it's, you're able to do that. So the the, the benefit here, if you will, of using the new way using streams, to sort is that you have the choice. You can choose to not mutate. Or you can choose to mutate depending on which is what your preference, which one is your preference. There you go. I guess that's how you say it. Yeah, so you can make the choice yourself, you can choose to mutate or not, whatever tickles your fancy. So that's it for really for sorting right now. There could be other I don't know if there's any other sorting methods, I guess the only other sorted method is you can do just dot sorted without a comparator. If the object or the objects the class, that you're trying to sort the class that you're streaming, or gets the objects that you're streaming, if that implements Comparable, then you're good, then you don't have to pass in a comparator, right, a comparator. So if you had if you were streaming and sorting a list of like strings, well, strings, by default already have a way to sort themselves, it just sorts alphabetically, right? If you were streaming integers, or Long's or whatever, those already know how to sort themselves, right? Java has the people who program Java have already put that code in place to tell it how to sort itself. So you can just do dot sorted. And then you don't even need to pass in a comparator. But again, that's the same thing that you can do with the old way as well. You can do collections dot sort, and pass in a collection of strings, or a collection of integers, or a collection of Long's and it'll just sort itself, you don't have to pass in the comparator. So really, again, we have the same thing going on here. But it's I guess, good to know that you don't have to use a comparator. Like we did in this example, if you don't want to, if the objects that you are streaming, implement comparable, okay, so like I said, not a whole lot of, of fanciness going on here. Other than, like I said, that little bit of a note on mutability, and how with functional programming, it's more readable and immutable. It's just a little bit safer and a little bit more readable. So once you understand how to do this stuff, it just tends to be the go to way that I code myself, personally speaking. 19:00 I don't want to say that you have to do it that way. But it's just I just find once I got comfortable with it, which for me didn't take too too long. It was definitely a learning curve, and hence why I'm talking about here on the podcast. But once you learn how to do this stuff, it just becomes a little bit more second nature and a lot more nice to work with, in my opinion. So that is me on my quote unquote, high quote unquote, high horse that is me on my high horse saying, Hey, you guys should use streams if you're not already using them. And yeah, I mean, I could now we could go on and move on to another topic, but I guess, you know, I'm over already 20 minutes. And of course, I'm long winded. How do we not see that coming? I don't want this to turn into like a 45 minute podcast, but there was some code in there that I did. In my example. Again, if you go to coderscampus.com/55. And you go to the GitHub repository that I will link in the notes there. You'll see that I leveraged something called an int stream To do some loops, looping type code, and yeah, I want to talk about in streams and into meaning it streams. And how it is a does it extend the stream, I forget if it extends a stream or not extends base stream, which was that extends auto closable. I guess this is not extended stream, auto closable does not extends interesting, I thought I extended the stream anyway, an int stream is just a different type of stream that unlocks some new or different I should say functionalities. Maybe I'll I'll touch on that in the next episode of this podcast. We'll try get the next episode out really quickly now, because I'm already talking about int streams. But in streams are really fun. Because there's a lot of cool stuff that you can do with it, you know, you can use it to replace a typical for loop. And you can even use it to get some really cool statistics on any data set that you have. In this Yeah, it unlocks some pretty powerful stuff there. So we'll talk about that one in the next lesson. Again, I'll try to get that out ASAP. And hey, if you haven't already checked it out, again, I'm sure you have heard about it and but may not have checked it out. coderscampus.com/bootcamp, right? If your goal is to get a job as a coder, if you want to get paid, you know really a lot of money for doing something that if you're listening to these podcasts and enjoying them, then you get paid a lot of money to do something that's fun. Fun once you you get the hang of it, right? Always the learning curve is not that fun unless you figure it out. And then you have a lot of fun. Once you figure something out and make a breakthrough, then you feel great. But then it's just on to the next, you know thing to struggle on and have to make a breakthrough on then you get back into the hole. Oh my god, I'm not good enough for this. I'm not, you know, smart enough. I'm not this. I'm not that. Anyway, we've talked about this whole mindset thing around coding before on the podcast and how it is, in my opinion, one of the number one things that stops people from achieving their goal, right, they think they're not good enough. And really, every single coder thinks that they're not good enough, every single one, I have not met, I don't think I've ever met a coder who hasn't, at some point, hit the struggles and said like, Ooh, I don't know, like, I really want to do this. But this is really testing my resolve, right? Even Even people in my in my boot camp who I would have, I would have bet that they like one person in particular comes to mind where I would have bet that they would have sailed through the the podcast sale to the boot camp with very minimal hiccups. And then it turned out that whatever was halfway through or three quarters of the way through this particular individual really started to struggle, and then start to fall behind and then lose faith in their ability and start to, you know, stop showing up for the calls. And it was like oh, man, like I didn't. It's amazing how hard this is. That's the that's the message I want to get across. So the people who make it across the finish line are the ones who seek mentorship. I know I'm a broken record. I've said this before you've heard this before from me. But seeking mentorship and always asking questions and always asking for help is the way to achieve the goal. Okay, it is I have not yet met a student who has reached out and asked for help through the mentorship that they get in the boot camp throughout the entire thing. Who has not made it out the other end? Okay, not yet. Um, there might be one but I'm tired. I'm saying 99% of the time if you are someone who just keeps going, keeps asking questions, keeps showing up, keeps asking for help and keep getting that help from something like a bootcamp you are going to make it okay the job market is so hot right now, especially now in I'm recording this in 2022. 23:55 And again, this this this statement has never changed. Okay, my statement of the job market is so hot right now hasn't changed since I graduated university in 2006. Seven. Okay, the job market is ridiculous. Okay, but the job market for senior level programmers is ridiculous. Okay, the job market for entry level is still good. But it's not as good as senior level because students it's there's so many people who try to be qualified as and who who advertise themselves as qualified to be a junior level, right an entry level coder, but so many of them are not qualified. Right. And because of that, employers don't see the value in junior level as much as they do in senior level, but I'm shifting that on its head. I'm saying there's far far more value in a well educated entry level programmer than a senior senior level programmer, in my opinion. Okay, if someone has gone through a program like this boot camp on top About coderscampus.com/bootcamp, I am happy to hire my own boot camp students. Okay, I'm happy to hire my own boot camp students who show me that resolve that I was talking about before that drive that always showing up that always asking questions that you can't teach, I cannot teach you to take action, I cannot teach you to reach out and ask for help and ask questions I cannot teach you to not give up. That is something that you have to be good at yourself, okay, you have to have the resolve, you have to have the drive and the desire more than just the motivation to go forward. Okay, that I can't teach. But if you have that skill set, okay, if you've earned it, or learned it, or whatever, that kind of stuff. The rest is, is easy for me, I can teach you how to code, right? This is that that part's simple. Okay, that's just time. That's all that is. And once you get through the other end, I will hire the heck out of you if you know. So anyway, long story short. In my opinion, the coding boot camp is the solution. It is the path to employment, okay, to starting a new career, there are plenty of entry level jobs, for coders who are good enough, and you will be good enough if you go through the boot camp. And once you're beyond that, once you've had a year or two of experience, the world becomes your oyster. I know I've said this before, but it is so so true. as true today as it has ever been. There are just so many people, so many recruiters banging down my door banging down the doors of all senior programmers out there desperately trying to find people to, to fill the holes in the hiring process of other companies. So so many companies are looking for programmers who are qualified and they just can't find them fast enough. Okay, as myself as a business owner, as an employer, myself, I have felt this pain before I have felt the pain of Oh, no, I need more people. And I don't think I can find them. Or it's very, very difficult to find these people. Okay, I felt that pain before, not with programmers specifically with a different role. But now Now I understand the pain of Oh, no, like, where do I go to get these people? If I can't get these people? What am I going to do, I'm going to be in trouble. And that is the exact feeling that these employers have with respect to hiring programmers. So that's why I've taken it on myself my mission to train people on how to become the next generation of great coders. So we can fill those gaps, help those employers and help you at the same time. Okay, the university education and the university system, at least in North America, from what I've seen, falls very short of being able to fulfill this promise of allowing you to be job ready, and allowing you to go into one of these roles and understand what's going on. Okay, being able to hit the ground running. Okay? I haven't I just It still hasn't changed. Every every student I speak to every university student I speak to, they all repeat the same thing. I don't feel like I'm ready. Okay, and they're not I know, because I was one of them before. With a boot camp students, I just had a student last week, who's gone through the boot camp who is is pretty much graduate at this point. They're just waiting for their final review on their on their final project. They got a practice coding assignment that they needed to do. So they applied to a job. And they were given a practice coding assignment to fill out. And this student started to work on the practice coding assignment. They read through the requirements for the coding assignment, and they said, Oh, this looks exactly like assignment, I think nine or something in the curriculum in my boot camp. They're like, Oh, it's it's just assignment or assignment. 10, I think it was, they're like, Oh, this is just assignment 10 with different names, right? Different names, meaning different, different domain objects anyway. 28:57 But it was a, it was a simple assignment of, you know, you need to be able to do the CRUD operations on calling an API. And they were like, Oh, I've done that before. And they wrote able to code 95% of the project. And then they hit the last 5%, where it's at, okay, now, you did do that these XYZ things. And they were like, Ah, I'm, I haven't done that before. And that's always going to happen, right? I can only you can only know so much until there's that last 5% that you need to look up yourself. So guess what, they had the skill to be able to first reach out and ask for help. And I said, good question. Go google it. Right. And then they went in the Google that. And they're like, Oh, I think this is the way to do it. And I said, Yes, that's the way to do it. So this, you're learning. I'm teaching you guys on the podcast, as well as the bootcamp how to prepare for the real world. And I just see this every single time where students are like, Oh, they get their first you know, project on the job, or they get their first practice assignment. And they're like, Oh, that was assignment three here. That was assignment. 10. That was assignment six. So that was assignment and I say, Wow, imagine that shocking. Like, I keep saying a lot. I base my assignments off of the real world, but it doesn't really sink in. It sounds like marketing. But when you see it happening in the in in front of you when you are living the promise that the marketing talks about, you go, Oh, that's really helpful. Thank you, Trevor. And I'm like, okay, good. You're welcome. So anyway, I'm talking way too long than I meant to about this, but I just wanted to share some stories. And if you are someone who suffers from the I'm not good enough syndrome, and the I don't think I could ever make it syndrome, and everyone else can do it, but maybe not me, or I'm gonna be able to deserve this. I don't know, whatever you're struggling with. I've heard it all before. I've seen it all before. What it comes down to is the drive Do you want this or not? Okay, and do you want this soon? Do you want this in the next six to maybe nine months? Okay, or do you want to wait 18 or 24 or 36 months, I have, I cannot count the number of posts, I have seen on StackOverflow or not Stack Overflow on like Reddit, of people saying, oh my god, I got my first job, Yay, I'm a programmer. This is you know, I'm a self taught and I knew I can do it on my own. And that's great. I'm very, very happy for those people. I, I'm thrilled that they made it out. That's the goal. That's the dream. But then you read their story. And it's like, yeah, I started learning how to code, you know, 17 years ago, and it's like, Oh, my God, that's an exaggeration. But maybe they said, you know, three years ago, two years ago, and it's like, well, if you if you're okay, with waiting two years, great. But if you're in a situation where you want this, now, you want the salary, now you want the the outcome now, and you're ready to go. Now, boot camps are cheaper. 31:45 Okay, learning on your own might be free. But the opportunity cost that you give up, learning on your own and stumbling for two or three or four years, that has immense cost. So if you are ready to go now, if you want this stuff now, if you are more than motivated. Now, if you are driven. Now, if you will stop at nothing to unlock the career stability and an income, you know, now, if you want to, like, boot camps are the way to go. Okay, there's nothing I've seen that goes faster than boot camps. So I'm sorry, this is I did not mean to speak this long about this subject. But I just want to get that point across. So if you're still listening, and if this is actually, if you're listening on purpose, meaning if you're just doing the dishes, and your hands are wet, and you can't turn off the phone and skip what I'm saying, I'm very sorry, I will stop talking very, very soon. But if you're purposefully listening to this, if you're making the choice to listen to this, and you are considering it, and if this is striking a nerve with you, and making you feel like maybe I should check this thing out. I know it costs money, okay, it does cost money. But we're trying to structure it in such a way that you pay as absolutely the least amount of money as you possibly can to just cover the cost of the boot camp. Okay, just just my I don't take any profit at all, from this arrangement. And I'm saying this, I probably shouldn't be saying this out loud, because I don't know what this offer is going to be forever from now. But currently, as it stands right now, we're trying to make it so you can pay just the cost, meaning you only pay for the cost of the support that you're going to receive in the bootcamp and that's it. And the rest is could be potentially put into something called an income share agreement, where you don't pay that amount until you get a job as a coder making like $60,000 a year or more something right? Now, don't quote me on that I need to, I'm still ironing out the details. And I'm gonna get yelled at by my team for saying this out loud. But maybe they don't know they don't listen to the podcast. So I'm trying to structure it so that you pay the least amount of money as possible just to get the in, get in, get the education, and then you don't pay a cent until I get you out the other end and I help you to get that job. Once you have a job as a programmer, then you pay the rest of the balance. Right, that's sort of the deal that we're trying to structure. So that way I am I've always been motivated and incentivized to get jobs for my students that has never changed. But now I'm putting my money where my mouth is even more so by saying, Look, if you don't get a job as a coder, if you're if you don't get a job making less than 60k, then you don't pay back anything. And that's okay. There's no legal ramifications, that means I have failed. Okay, so long as you graduate, I should say that is the current stipulation, you need to graduate which means you need to do the work you need to show up you need to attend, you know, and do the assignments and follow my instructions, right if you choose to not follow my instructions and choose to not do any work and not show up and drop out, well, I can't help you. I'm not going to guarantee you a job and you're still gonna have to pay a penalty for that. Because that's you tapping out not me. This can be done as long as you're ready. As long as you're driven and you're willing to show up. I can I can extend that offer to you now you should also stay. Because I'm saying this out loud. The stipulation is for certain countries, for there are certain countries where even if you're the top developer, you're the best developer in on the planet, you're still not going to make $60,000 a year. That's just the way you know, global economics work. So this offer is limited to certain countries where, you know, your entry level salary is on average for a programmer. $60,000. Right. Yeah. So in other words, North America, some countries in Europe and whatnot. That's what this applies to. So I should make that that distinction now. But yeah, that's, that tends to be the majority of the people listening to the podcast, I'm very sorry, if you live in Pakistan, or India or something, and you're looking to get that kind of deal that education, I'm sorry, but it's just too expensive. And there's nothing I can do to solve global economic issues like that. Anyway, okay. I will stop talking. So coderscampus.com/bootcamp. If you are interested, now is the time to reach out. As soon as I release this podcast, reach out. You know, you go to the website, coders campus.com/boot camp and click to talk to us or whatever apply, send us a message, whatever, however you want to get in touch and say, Hey, I heard Trevor talking on the podcast about this offer where I only pay, you know, the cost of the bootcamp. I don't pay any anything else until I graduate and get a job and make $60,000 a year I want that offer. Right. So if that's you if that sounds good. Go now, coderscampus.com/bootcamp. And you know, fill out an application form. And make sure you have at least you know, 10 to 20 hours a week free. Because if you have less than 10 hours a week free, it's just gonna take too long. And then you might as well just learn on your own. Cool. Cool, I will stop talking. Thank you very much. Until next time again, I've promised you we will be learning about it streams i NT streams in the next lesson. So look forward to seeing you there. Take care of yourself as always, Happy learning. And bye for now. 37:07 Thanks for listening to this episode of the coders campus podcast. But before you go, Trevor has a favorite ask you. In order to keep these episodes free, he'd love for you to leave a rating and review the podcast on iTunes. Just go to coders campus.com/review to leave your own rating and review of the show. So if you have 30 seconds to spare right now, please help out by leaving a rating and review via coders campus.com/review It will ensure that you continue to get these awesome free podcast episodes each and every week. So if you like free swag, head on over to coders campus.com/review Happy Learning The post EP55 – How to Sort with Streams in Java appeared first on Coders Campus .…
 
GitHub link here: https://github.com/tp02ga/FunWithStreams In this episode we'll talk about: How the .map() operation in Streams is completely different than a HashMap The details of how .map() will transform your data from one type upstream, to a different type downstream A real world example of how to use the .map() operation in your code Episode Transcript 0:09 Welcome to the coders campus podcast, where you'll learn how to code from one of the best teachers in the industry. Whether you're an absolute beginner or a seasoned pro, the coders campus podcast will teach you what you need to know to master the art of programming. And now, your host, Trevor page, 0:28 o k, my fellow coders, welcome to this 54th episode of the coach campus podcast. Thank you so much for joining. As always, if you're in your car, thank you for listening to me while you're driving, if you are on the treadmill or something at the gym, thank you for listening to me while you are working if you are doing dishes, or if you are just relaxing on a couch or in front of your computer. Thank you so much for listening. This is one of the most enjoyable activities that I do as a part of what I have been doing for the last 10 years, which is teaching people how to code. And in today's episode, we're going to be diving into as promised the topic of maps, specifically the mapping or the map operation inside of streams. Now, right up front, I want to say just like I did last time in the in at the end of that last episode, streams, maps, rather sorry, map as an operation within a stream has nothing to do with a HashMap or the map interface in the Java language. Okay, nothing to do with it. So anytime that you hear me say stream and map together dot map, don't think of HashMaps Okay, that's gonna be hard, don't think key value just throw that concept away okay. I wish there was a better fitted word here that we could use for this operation. But think of this as an operation this is you are executing a method the method is called dot map, okay, that's the function of the method or the procedure or whatever it is that you want to call it, they all mean the same thing okay. This is an operation that we are performing it is not a data structure. Maps as data structures are something different dot map is an operation is a function that we are calling that we are executing. Okay, so I will say that, first and foremost, at the top of this episode. Now, what the heck is a map dot map this operation within streams. So that's what I want to dive into today. But quick interlude, as I'm publishing this episode, it is Black Friday, in 2021. So it's November 26 2021, is when I'm publishing this, or at least I'm planning on publishing it. Obviously, if you are listening to this, and you might be listening to it on this day, but you know, you're probably listening to it at some point in the future. But why this day is important, this Black Friday, November 26 2021, is we are releasing a brand new product. It is a brand new 3:00 coding boot camp that I am very proud of, as you've heard me talk about in past episodes, I am very bullish on boot camps. I am a believer, I am a I am I've been converted to boot camps. Okay, I'm a believer in their efficacy, the efficiency and the outcomes that come from boot camps now. But, Trevor, you already have a boot camp? Why are you talking about releasing a boot camp? Well, let me tell you the last, you know, three years that we've been doing boot camps, I have had to turn away a significant portion of students, aspiring coders potentially just like yourself, because you guys don't, or at least most of the people who have applied to our boot camp. They don't have enough prior knowledge, enough prior experience with code. And that leads to them. Probably not having a very good outcome inside of our full boot camp that exists today as it is and as we've been running for the past three years. So I've always felt a little bit icky about that. I don't want to turn people away and say you're not ready yet. So that is why I am announcing today, as you know, Black Friday, November 26 2021, we have designed a boot camp that is fit for the complete beginner. So if you are a complete beginner, or if you just don't feel ready enough to jump into the you know, the big boy pool or whatever you want to call it. If you've been you know only doing this whole code thing for you know, maybe less than six months or something like that. You've been dipping your toes in the waters of coding for less than six months. This boot camp is for you. So and it is a coding boot camp. It is a 16 week program where we will teach you the fundamentals of coding. Of course we focus on the Java language while doing that. But let me tell you, this is the hardest part of learning to code, the fundamentals. Okay, what I'm talking about today streams and maps, those are beyond fundamentals. Okay, so if you if you're confused about streams and maps and or just streams in general. Yeah, that's good. That's probably means that you're you still need work on the fundamentals, you need this new boot camp. Okay, this I call it the core Java boot camp. Okay, because we've talked about core Java concepts. Core, Java is another way to just say the fundamentals of the Java language. And really, this is the fundamentals of any coding language at all. Okay, these concepts can be applied concepts can be applied to pretty much any object oriented language. Okay, that's what we're learning in this bootcamp. And let me tell you, like I said, this is the hardest part, this is where 90% of the people who start will stop, they can't get a grasp of the fundamentals. And they tap out, and they walk away. And I don't blame them. Because learning on your own learning without mentorship, learning without accountability, without community without direction, curriculum, and constant access to support. Without that stuff, you are so likely to fail, like 95% more likely to fail if you go that route on your own, okay, that's why I am big on boot camps, they really helped to bridge that gap. And they really helped to give you the confidence that you need, when you need it most. Okay, so I'm very proud and very excited to announce this, I want to call it the core Java boot camp. But really, like I said, it's just a boot camp to learn the fundamentals to get further than 90 some odd percent of people who've ever tried to learn how to code. So if this is you, if this is resonating, if you've tried before and quit, and if you're just sort of dabbling, or half in, but you really want to be all in, this is the way to do it. And And hey, if you're listening to this in 2021, on the in the Black Friday season, that hey, even better, there's a discount right now that we have, I haven't done a discount or a sale in like four years, because I haven't had time. But we're doing that here. And now. So you can get in and get access to this coding boot camp at 25% off. And in my opinion, this is very affordable. Okay, so this is not, because it's we're not teaching the five pillars of full stack development in this bootcamp, we're just focusing on the fundamentals for 16 weeks, we can make it more affordable. So as part of Black Friday, you can get in for 1500 US dollars, okay. 15 101 time gives you access to the entire 16 weeks of the bootcamp it gives you access to, like I said, all the support that you're going to need the live calls, we have like three live calls a week, with our lead instructor, we you get assignments. So there's four super challenging assignments, and you get code reviews for those assignments, you'll be able to get personalized feedback on the code that you write. There are plenty of like coding exercises in there that are smaller than the assignments. The assignments are where you're going to really struggle. But the exercises are a lot easier. Again, this is all making sure that you are absorbing and learning what it is that is being taught as part of this curriculum. So there's probably more that I didn't mention, but oh, yeah, there's a Slack channel. So the whole point, again, everything that we can do to help you get very comfortable with the fundamentals of coding, that's what we are doing this boot camp for 1500 bucks. Okay, that is an insanely good deal if you know and understand the power of what a boot camp delivers. Okay, my other coding boot camp is almost 10 times that price. So hopefully you understand the the impact and the severity of this offer and how big this is. So if you are a beginner, if you've been desperately needing help and wanting guidance from experts to be able to hang out with people just like yourself to be able to ask questions when they come up to be able to get help when you need it most. And to learn from experts about coding conventions, and all the things that you should be doing in order to be ready to take the next step, the next level, which is the next boot camp, do all that stuff, get that help in here, be ready for the next boot camp, and then we take all the money that you invested in this one, and we just apply it 100% As a credit towards the next boot camp. Okay, and then that next boot camp, then you're the big, you know, you're playing with the big boys, you're, you know, the big guns, if you will, whatever you want to call it. That's the fully comprehensive full stack boot camp that you've already heard me talk about this whole time. Okay, so every penny that you invest into this new one that I'm talking about the core Java boot camp, you can reinvest it 100% right back into the next one. Okay, so you can just take that and use it as a credit full credit, full discount, whatever you want to call it. So, really, this is like a if you're long on this process on education and getting a job as a coder, this is kind of like free. It's like a free boot camp that you can take right? Because you're just gonna get all that money back in the next one. So that's why I'm super excited about it's kind of like getting free access to me, my brain, my staff's brain, the all the content, everything that I've worked 10 years to create, you're essentially getting it for free. If you plan on going, going the route the whole way and doing the full full stack boot camp afterwards. Okay, so hopefully that makes sense. 10:09 Yeah, plus, like, I didn't say you're guaranteed admittance into the other boot camp. So if you finish this one, like the new one, you'll be guaranteed admittance into our full boot camp so I don't have to turn you away, which feels so much better. So cool, if that's of interest. And again, if it's Black Friday, and you're listening to this now, and it hasn't hit whatever, November 30, at midnight is when we're turning off the discount, go to coderscampus.com/beginner , pause the podcast right now, if that's resonating, if you're driving right now, if you're I don't know what pull over like if this is, if this is what you've been wanting for so long, it is right in front of you. All you need to do is go to the site sign up, it's as easy as typing in you know, your name, your email address, and whatever, you know, payment, you want to do credit card, PayPal, whatever you want, do it. Okay. And if you can't do a single payment of 1500, that's too much. We have the payment plan as well. It's like, you know, for payments of 597 or something like that, or three or four payments. I don't know, go there, you can do the paid plan as well. In any case, coderscampus.com/beginner . Okay. All right. So I'm taking so much time there to explain that. And even if you're in the future, and this is not the Black Friday sale, again, even without the 25% discount, like I said, you can take 100% of that and apply it towards the next boot camp. So it's it's worth it either way, whatever amount you're paying, you're getting it right back in the next boot camp, and then that next boot camp, the full stack boot camp, the one that's huge, the one that's, you know, 10 times the size, that one has a job offer guarantee, as you've heard me talk about so well worth it. Okay. Let's get back to the content of hand, which is streams. Let me take a sip of water to get down from that. Okay, I'm ready. Let's do this. So Java streams, specifically, an intermediary step called dot map, again, reiterating, not HashMap. If you're just thinking hash map again, throw it out. No, not not this isn't this is a function, there's a method, there's an operation dot map. So what is dot map? Do Trevor get to the point. So dot map is an intermediary step in part of a stream. So as you're streaming, a collection of objects, dot map allows you to take the object that you are currently streaming over, in other words, looping over. Okay, so takes the object that you are looping over and allows you to perform operations on a smaller set of its properties. Okay, so that's essentially what it does allows you to narrow in on a smaller set of properties or a single property, if you will. Okay, so, okay, fair enough. So it's all about zooming into a more specific property inside of the object that you're iterating over. How is that helpful? What does that mean? Can you be more specific? Can you give me an example? Sure. Absolutely. That's what I'm here for. So the example that I have in my code that I am hopefully have published is an example of using like, something like bank transactions, this could be anything, right? This could be any object, any object that you've created that has properties. For the one that I've created, the one that I'm using for the example is a bank transaction object. So the bank transaction class has three properties. So a bank trend transaction has a transaction ID, it has a created date, like when you created the transaction when the transaction was made. And it has an amount, okay, a monetary amount. So a bank transaction is three things transaction ID created date, and amount. That's it. That's what our bank transaction has, which again, think about the real world, when you perform a transaction, you have your debit card or something or you have a credit card, like you go to coderscampus.com/beginner and sign up for the bootcamp right. Course, camps.com, Ford, you'd like that, that was pretty good. I was smooth, I didn't plan I didn't plan on that. You go there and you create a new bank account transaction, you sign up with your credit card, with PayPal, inserts a new bank transaction. And you're now part of the bootcamp. Congratulations. So you do that and you have a bank transaction, right. And that transaction will have a unique ID, because that's how the world works. You need unique IDs to zoom in on the single thing that just happened just like when you have a you know, a driver's license number. It's unique to you and your state or your province or wherever you live your region. 14:48 You need some way to identify that single thing. So we have a transaction ID. We have a created date, which is boom, you don't happen just now or whatever it is that the the transaction gets created. We can put that into it. To date, and then we have an amount, right? It's just 1500 bucks for the boot camp. So that's the amount, right? Or 597? Because one of the whatever for payments that you that you can make to join the boot camp, right? There you go. That's your amount. So that's what a bank transaction is right? There you go. We just talked about a real world case. So with that bank transaction, let's think what can we do with that data? Right, let's say we have a bunch of bank transactions, let's say you log into your bank account, and you want to list out the past three months of transactions. Okay, so cool. You open up a report, you say, you know, show me the last three months of data, and then your bank, banks website, or whatever, lists out every single transaction that has happened in the last, whatever, 30 or 90 days or whatever, right? Ooh, cool. So you see all them listed there? Well, that's kind of like a collection of bank account transactions, right? That's your, that's your bank transactions. There's a whole bunch of them, there's a collection of them, there's like 90 days worth of the transactions. Right? Okay, with me so far. So let's say we have, we want to do an operation on that, we want to get a some of the most recent transactions. Okay, so of the last 90 days, or the transactions, let's say we want to get a some of the most, you know, recent, seven days of transactions. Let's say that's what you want to do. Okay? I don't know why, let's just say that that's something that you want, you want to get a sum of the last seven days of your transactions, because maybe you want to keep keep track of your weekly spending or something and you want to chart it or something. Fair enough. Cool. So how will we do that? Well, again, old way versus new way, there's an old way, which is without using streams, and I will be as brief as I can about this. So the old way, what would you do? Well, you'd have to get your you know, your list of bank transactions and pass it into a method, this method can be called, you know, get some of recent transactions, let's say, Cool, that's no different from using streams, we need a method, let's create a method get some of recent transactions. And we pass in our collection of bank transactions. In this case, we can use a list of bank transaction objects, and pass it into the method. Great. So how can we then get a sum of the most recent transactions? Well, we need to say, Okay, we want to get transactions between today and seven days ago. So you'll need a little operation to generate to the date range or whatever. Again, I don't want to get into the details of that, you'll have to do that either way. So cool. Now, specifically, in order to make this work, we need to iterate through every single one of the bank transactions. And we need to check and see if the created date for that transaction is between now and set, let's say seven days ago, right. So in other words, this is a filter step, we're not mapping yet, this is just a filter step. So we have to filter out and say, Okay, give me the transactions for the past seven days and add them to my to my list of recent transactions, because we will have created a list of recent transactions or something, a list of bank transactions called recent transactions, we add them to that list. Great done. So now we have a new ArrayList of recent transactions, meaning transactions that have happened within seven days ago. But now we want to get a sum of all of those transactions. So now we've collected them all. Got them all in a list, all the recent ones, just just the ones for the past seven days, we want to know add them up, right, so we need to get a sum. So we need to declare a variable called sum. And it's a double because I'm using a Double data type. We started at $0.00 0.0. And now we need to iterate through. So we do another for loop to iterate through the most recent transaction or so I should, I should say, the recent transactions list. This is a new list that we instantiate it as part of this method that we're talking about here. So we instantiate a new list. And now we say, hey, within that new list that we're iterating through recent transactions, each one of those is going to be assigned, I'm using a for each loop. So it gets assigned to a new variable called a recent transaction. So the singular version that's just good coding convention, singular versus plural plural for a collection. So we have a recent transaction. This recent transaction has an amount so we say recent transaction dot get amount, because we want to get that amount. And we want to add that into our sum. So we have to say sum equals the sum plus recent transaction dot get amount. 19:39 Okay, so that's what we're doing here. We're just saying hey, we have an object called a recent transaction, it is a bank transaction. The bank transaction has several properties, but we only care about one of those properties which is amount. So we need to say recent transaction get amount and then we take that amount and we add it to the value of some the previous values and reassign it back to sum. So in other words, we're going to do sum equals sum plus recent transaction dot get amount, which is what I just said. But hey, I wanted to just zoom in on the fact that we only care about one of the bank transactions properties, get them out, or sorry, amount, and we get that through the method called get amount. Okay? So we add up the sum, and then hey, we return the sum from this method, right? Because we want to get the sum of all the transactions so we can return that sum. And we are done. Okay, that's the old way of doing it. So to summarize, the old way of doing it, we need to instantiate a new list, we need to populate that new ArrayList with the most recent transactions, we need to initialize a some variable and initialize that 0.0. And then we need to iterate through the new list that we just created called recent transactions. And then we need to for each of those transactions, get the amount and add it to sum, and then we need to return some. Okay, that's sort of what we're doing in the old way. Okay, it's about what is this? 1-234-567-8910 1112 lines of code? Okay. So 12 lines of code, we can get her done? Well, in the new way, we only need 123456. So we need half as many lines of code. Cool, right? So how do we do it the new way, right? Okay, same thing, we have a method, the method can be called Get some recent transactions, we pass in our list of all the transactions from you know, whatever, the last 90 days, just like before, nothing changes here, all good. And we still have to define our window. So we have a variable that we create, called, I call it seven days is the name of the variable. Again, it's just what's our window of time that we're dealing with here. So we'll look at a seven day window. So we still need to declare that variable, that's still, that doesn't change just like we did in the old way, we have to do it in the new way as well, because that's part of our filter that we're going to use now. Where it changes is we can say bank account, or sorry, bank transactions, which is all of the bank transactions that we're passing in here, bank transactions dot stream. Okay, so we're going to stream our bank transactions. And then as you expect, as I alluded to, before, you need to filter this list of bank transactions, just like we talked about last episode, so I won't spend too much time here, we're filtering by created date. So we're saying, you know, dot filter, or we're having the lambda the lambda for filter is a predicate, the predicate takes one input. So the input that we're going to call it is just called bank transaction, you can call it whatever you like, as my followers know, I am partial to using the variable dog poop, to define a variable such that it can be named whatever the heck you want it to be named, the name doesn't matter. You could call it dog poop if you wanted to. But obviously, following good coding conventions, we give it a better, more meaningful name. So the meaningful name for the variable being passed into this predicate functional interface is going to be called bank transaction, because that's what it is, ladies and gentlemen, it's a bank transaction. So again, we're streaming we say dot filter, bank transaction is the name of the input variable to this lambda expression. We have our lamda arrow, and then to the right of the lambda arrow, we have the, the body right, so the body is just going to say bank transaction, which is the name of the variable, we just green dot get created. date.is, after seven days is the name of our variable. Now, I skipped over those details in the old example. But that's exactly what we had to do. In the old example, we just say, hey, is this bank transactions created date after seven days ago, then cool that included in this new list, but here in the new way, we just do a dot filter, we don't have to create a new list and populate it, we just use dot filter. Cool. So Dodd filter done now remember, dot filter returns, because it's an intermediary step, it returns another stream, specifically a stream of bank transaction objects. So dot filter still returns a stream? What can you do on a stream? Well, you can say dot map. 24:15 Okay, so you can do method chaining. I talked a little bit about method chaining. So we can do some method chaining here dot map. Well, what does dot map take in as a an input? It what does it take, you don't even know it takes in a function. So a function functional interface or whatever you whatever you want to call it. So it takes a type t, and it returns a Type R. Okay, whatever remember to return type is and it figures out what that return type will be based on what you give it, as well as the input type. So again, dot map takes an input type T. In this case, it's our bank transaction, because that's what's being passed to it from above from the filter above. So we have a bank transaction type. We'll call it bank transaction as part of this lambda function. Again, we could call it dog poop if we want it to be called X called Zed or whatever variable. But again, it's a bank transaction. So call it bank transaction, lambda arrow to the right of the lambda arrow, what are we doing? Well, again, dot map, takes an object bank transaction, and returns a specific like a subset of its properties, or, well, a single property, typically, in the real world use a single property. To return a subset of its properties, you'd need to have like a DTO, or something, but we won't go there. In this, in this example, we're just using a single property. And that's pretty much most of the time what you see with this operation. So we're gonna say bank transaction dot get amount. Okay, so just to reiterate, we had a filter, and then we have dot map, bank transaction on the left, lambda in the middle, bank transaction dot get amount on the right. So we're just going to say, hey, take the input of a, an actual bank transaction object and sort of coming in and spit out an amount as the output. Remember, the backing functional interface for dot map is function, function, input type T, output type R, okay, T R or generics. T in this case is bank transaction R in this case will be double, y is the output type double because we are telling it bank transaction dot get amount, what is the data type of get amount, the data type or the get amount data type, what's returned from that is of type double, because the amount is of type, double input type, bank transaction, output type double. So we've just translated if you will, in our stream, I like to say I like to use the expression upstream. In other words above this operation that we just did. I don't know if that's actually a thing, what they say makes a lot of sense if they call it upstream. But anyway, I say upstream. So upstream from the dot map operation, we were receiving bank transaction objects. But now downstream from the dot map operation, we've just changed that into double data types. So above map, we had bank transaction below map now downstream, we're going to have double. So that changes things. Alright, because we're no longer working with bank transaction as an object type anymore. We're now dealing with double. Okay, we have just mapped it to be something different, we've changed it, we transformed it, it's almost like dot transform, have you better name the dot map. But anyway, we've transformed it from one input to a different output from bank transaction as an input to double as the output. So now downstream below, with the next operation, we're dealing with double doubles. Now we're no longer dealing with bank transaction. As a type, we're dealing with the the amounts that belong to those bank transactions, downstream below dot map after dot map happens. So after the dot map, operation happens, picture each of the bank transactions for last seven days going in, think of your bank account and all that information you see on the screen, the last seven days, all the transactions, you know, credits and debits and from, you know, this grocery store, and here's your paycheck. And here's like all these transactions, all the details, you know, the dates that they happened, the name of the retailer, or whatever, the as well as the amounts in or out and all like there's all this information, but then we when we do dot map, which is like transforming it. Now just picture yourself zooming the screen in, specifically on the amount. 28:55 Column, all we're looking at now is the amount, okay, there's still a bunch of them still a bunch of amounts, and they are from all of those transactions on the screen, you're just throwing away all the other data around the screen, and you're just zooming in to the amount. That's what we're doing. We're zooming in on one property, one piece of data amount. We're throwing everything else away, so to speak. Okay, so we haven't changed anything, we haven't changed the underlying transactions at all, that the bank transaction objects are still sort of there. It's still those objects. But now all we can work with is just the amount in other words, just the double data types for amounts for those transactions. Okay, so that's important understand, downstream after we do the dot map, we're transforming it from one thing into something completely different. Okay. And that's where students often get mixed up. And they think, Oh, when I do a dot map, all of a sudden now I've lost my object. I don't know where the whole object went. All I have is like a piece of the object and I say exactly That's what you're telling it to do. That's what dot map does. You're, you're sort of throwing away the rest of the data. You're just zooming in on that one property. Okay? Cool. Let me take a sip. So hopefully I've over explained that hopefully you make it makes some sense to you, you and your mind. But remember, I should say, remember, let me tell you, what is dot map return. Remember, dot filter returns a stream of the object that we're iterating over right? The stream of Well, in this case, it was the stream of bank transaction objects. But what is the dot map return? Any guesses as to what dot map returns? Again, the two hints are it's an intermediary operation. And it underlying it, it has the function with T as an input and R as an output. So because dot map is an intermediary operation, it returns another stream. Okay, that's what intermediary operations do they just return another stream of something? So because it's an intermediary step, we have a stream of something. But what is the of something? What is the something I should say? Right, the something is now different, we don't have the object anymore, the Shinsei object, we don't have the original object, which is bank transaction. Remember, the underlying functional interface here is a function which takes a type T the bank transaction, and the output type OMA output type R, which in this case is double. Remember, we're doing an amount we're outputting an amount bank transaction dot get amount. So because we're doing get amount and amount as a double, the output now is a stream of double objects. It's no longer a stream of bank transaction objects, we have mapped it, we have transformed it to be a stream of double objects. And that has, I guess, consequences. I don't I don't wanna say consequences that has implications. Okay, we are no longer dealing with the bank transaction objects, we are now dealing with a native data type to Java, Java knows doubles. And because Java knows doubles, we can do something with that. Okay, there's special operations that we can do with double. So let's talk about that. What can we do with it? Well, the next step, we're going to do a terminating operation, a terminal operation, we're going to do dot collect. So we're going to collect all of those double amounts, right, all those bank transaction amounts, not all those bank transactions, are collecting all the bank transaction amounts that were from the last seven days, that's what this these steps have done. We filter get the last seven days we map, turn it from a drip bank transaction into the bank transit transactions amount, and then collect it. So we're collecting the last seven days worth of bank transaction amounts. Okay, what are we doing with collect? Well, we're gonna do something special ladies, gentlemen, we're going to do collectors dot, summarizing double. Now this I'm pulling out of my butt, this I did have to Google. But there's a special collector called summarizing. And then there's a bunch of different summarizing operations, you can do summarizing int, I think you can do you can do summarizing in summarizing double and summarizing the long. Okay, so this is a, this is a method that we're invoking. And you can pass in the amount so it just takes in summarizing double takes in 33:37 a what's called a to double function, but it's just like a function where you pass in a mount. So in other words, the summarising double just, you pass it into the mount and then you just on the on the left of the lambda and on the right of lambda, you just have a mount, you're not going to change it, you're not doing anything crazy with it, I just have a MT arrow amount, which looks kind of weird, but that's what you're doing. You're just saying don't do anything special with it, just take the double that's coming in from upstream from dot map, and just use it right. So summarizing double, returns something special, it returns something called Double summary statistics object. And this double summary statistics object which is returned its as opposed to collecting it to like a list. In the past example we said collectors.to list to take everything and turn it into a list. Now we're turning the bank transaction amounts into something called a double summary statistics object. Why are we doing this? Well, because the double summary statistics object which I just called the summary statistics object, gives us access to some really cool methods we can do dot get average get max get min get some we can do and then to do more, we can do a bunch of stuff with it. Okay. So, the the the important things to note there is that You can do get average get max get min get some average max min, some. Okay, those are for Super you oh and count. So I forgot count, average max min sum count. That's what this thing this summary statistics thing does for us. Okay, it unlocks a bunch of cool mathematical stuff for us to work with. Okay, so that's what the summary Summary Statistics does. And we were able to do that because we did the dot map step where we returned a double amount from the list of transactions that we're dealing with. And then we collected it into something called summarizing double what we use, collectors dot summarizing double, which returns a double summary statistics object. I know there's a lot of words going around there. But the point is, we can have this summary statistics summary statistics object and say dot get some, in other words, we can return dot get some. And that's it, we've now collected the sum of bank transactions, the bank transaction amounts from the last seven days, we return the sum, and we're done. Now the beauty with with this is we could also return the min and the max, the average and the count. If for some reason those were helpful, we could have done those as well imagine the old way what you would the work that you'd have to go through and the code that you have to type out to get the min, the max, the average sum and the count, right, that would be like that would take you all day, potentially, I don't know who knows. And now we just have it all in this one beautiful little operation called collectors dot summarizing double. So it's beautiful. No, just kiss to this. Streams stuff brought to you by dot map, being able to take an input type and trance, transform it into a different output type. Okay, that's what dot map does, again, not a great name, I prefer dot transform. I don't know what a better name would be then than that. But anyway, nothing to do with a hash map. That's something completely different. This transforms inputs into a different output. So that downstream, you can do something with it, like we saw here. Now when we take we zoom in on the bank transaction amounts, 37:14 we can do something with that. Now. caveat to everything I just said, you could probably get away with not using dot map, you could probably just done collectors dot summarizing double the input would be bank transaction, and the output probably could have been bank transaction get amount. So I'm kind of cheating here because I wanted to show you the dot map and explain dot map step. But that's a great way to explain the dot map step just goes to show you can make this five lines of code instead of six if you really wanted to stream to the best. That's me dunking on the old way of for loops, and while loops. And I hope you've learned something valuable here today. So hopefully, this was fun. Again, if you're listening at any realm close to 2021 and 2022. And you are a fairly new beginner to this whole coding thing. And your end goal is eventually to get a job as a coder, I really strongly suggest you check out our brand new Java fundamentals core Java boot camp that I just introduced as of today, as of the recording of this lesson or this episode. coderscampus.com/beginner will get you into you don't even have to like apply for it. Okay, there's no application process. We are accepting everyone. Okay, so Well, I should say so long as you have about 20 hours a week. Maybe we shouldn't accept everyone if you don't feel if you can only put in like four hours a week here. Yeah, then you're not committed. So yeah, you should have 20 hours a week to get to this. But as of right now, the recording we actually don't have an application process. So yeah, join coderscampus.com/beginner . And I look forward to seeing you on the inside of this 16 week, Java or core Java coding boot camp where you are going to learn the fundamentals of the Java language and you are going to do for crazy hard challenging assignments. For someone who's a beginner, you're going to get four beautiful code reviews, explaining everything that you've done, right, everything needs improvement, any conventions that you're not following, picking up on any bad habits and correcting them right there. And then it's beautiful process. With this, the code reviews are the best, I love them. Plus, you're also gonna be able to hang out possibly with me three days a week, most likely with one of my lead instructors. But hey, I often pop into those calls every once in a while and say hi to my coders and private Slack channel, you'll be able to get access to me there pretty much every single day seven days a week. As long as I'm awake and my wife is not within earshot or when I look I will respond to messages unless I need to be a dad and do family time then I will put my phone down but other than that I am responding to Slack messages and helping you guys out to achieve your goal of ultimately getting a job as a coder. So this is this is the best place to start if you are a beginner coderscampus.com/beginner Check it out. I'm super excited about it 25% off today until Monday, all was it November. What is Monday, November 29. My Calendar. Yeah, until the end of day, Monday, November 29, which is pretty pretty much like the morning of Tuesday, November 30 2021, you can get 25% off. But like I said, even if you don't get that discount, before time expires, 100% of what you've paid will go as a credit towards the next bootcamp, which is the full bootcamp which is the one that guarantees you that job. Okay, so it's pretty much like you're getting a free boot camp for 16 weeks, and you get to hang out with cool, cool people, just like yourself, and hey, me, too. So hopefully, I will see you there. I think it's one of the most amazing deals I've ever put out. And I'm truly proud to say that I'm able to release this bootcamp. So can we see on the inside coderscampus.com/beginner , and I can't wait to see you in the next episode. Take care of yourself. Happy learning. And bye for now. 41:03 Thanks for listening to this episode of the coders campus podcast. But before you go, Trevor has a favorite ask you. In order to keep these episodes free, he'd love for you to leave a rating and review the podcast on iTunes. Just go to coders campus.com/review to leave your own rating and review of the show. So if you have 30 seconds to spare right now, please help out by leaving a rating and review via coders campus.com/review It will ensure that you continue to get these awesome free podcast episodes each and every week. So if you like free swag, head on over to coders campus.com/review Happy Learning The post EP54 – What is the Map Operation in Java Streams? appeared first on Coders Campus .…
 
GitHub link here: https://github.com/tp02ga/FunWithStreams In this episode we'll talk about: What are streams and why you should care about them Comparing a simple Stream example to a Looping example Intermediate vs Terminal operations Episode Transcript 0:09 Welcome to the coders campus podcast, where you'll learn how to code from one of the best teachers in the industry. Whether you're an absolute beginner or a seasoned pro, the coders campus podcast will teach you what you need to know to master the art of programming. And now, your host, Trevor page. 0:28 Oh right, ladies and gentlemen, fellow coders. Welcome back to this next episode of the coders campus podcast, we have hit episode 53. And in this one, as promised, we are going to dive into the topic of streams, which is, I have to say, it's one of my favorite topics. Because of the features that we get to leverage here that again, come from Java eight, we get to, you know, leverage lambdas. And the behaviors that we get out of this code, the things that we can do with streams, the way the code is written, it's just, it's just so much more elegant, it's just so much more beautiful, more readable. Although it takes there's a bit of a learning curve that goes along with it. Once you understand streaming, it's just so wonderful to use. And it, it's a game changer, in my opinion in terms of readability, right and simplicity, right. So but again, all of that is, you know, important to understand that before you can do all that you need to learn this stuff first. So there is a learning curve involved here. 1:38 But my God, guys, it's so much it's so worth it, it's so worth the pain in the struggle to fully understand how to use streams. Because, you know, in my opinion, I never want to go back. So now, obviously, what do I mean by that? What do I mean by going back? And what is a stream? And how, how, why should we care about them? And you know, how do we compare a stream example to something else? And you know, what are the some of the commonly used methods and whatnot that we have with respect to streams, that's sort of what we're gonna be diving into, in today's 53rd episode of this coders campus podcast. So, as always, this podcast is brought to you by V coders campus boot camp. So I'm sure at this point, you've probably heard of it. If not, hey, there's always a first time for everyone. So the coders campus boot camp provides you with all the education that you need to get a job as a coder. And it's not just the education, it's all the copious amounts, the insane amounts of support that goes along with education because education by itself, in my opinion, I know this is a little controversial, is useless. So if you are someone who is fairly new to coding, education alone is in my opinion, useless. Because going from zero, like on a scale of zero to 100, if you're going from zero to like one as a coder, where 100 is job ready, so to speak, and zero is completely not job ready, going from zero to one is so, so hard, right? That's what this this whole podcast is driving towards is just the education alone, it takes so much time and effort to go from like zero to one, as a coder, there's so much so much fundamental stuff that you need to understand and that needs to click, and you probably need to hear it in 10 different ways. And it's just so difficult, right? Unless you are naturally gifted, in which case, it's a lot less difficult. But for the average person, it's very difficult. So that's where this bootcamp helps, right? We take you from we try our best to go from zero to one, I prefer to have someone who already is at one out of 100 with respect to their coding abilities, meaning you already have been exposed to variables and you've already written small console applications. And and maybe you're you've written some methods to take in inputs and give outputs and you understand the basics of methods and variables and whatnot and some data types. Once you're there, once you have all that knowledge, that's where we can take you from one to like 100 Right. In other words, we can get you the job ready in a short period of time in the boot camp by short period of time, I mean six months, okay, that is a short period of time when you know compared with anything else. So that's what the bootcamp is all about. We give you not only the education, but all the support that you need to get from essentially hypothetically speaking, zero to 100 Ideally from one to 100. So, we take you from where you are to being job a job ready coder. So that's what the bootcamp is all about. And that is what allows me to help produce this content. So if you are interested in that if your goal is to get a job as a coder, please check out coderscampus.com/bootcamp. Okay. coderscampus.com/bootcamp that will allow you to learn more about the boot camp, the program itself, what is expected of you in terms of time commitments and whatnot. It is a part time commitment, but it's still a commitment. So if you don't have at least 20 hours a week in your schedule, then don't even think about it. It this is, you know, we have to do a lot of work in six months. So you can check that out coderscampus.com/bootcamp, it is of interest to you feel free to apply. And you can ask all the questions you like, once you've applied, you are able to book a phone call with us. And we can hop on, you know, a phone call or zoom or something. And you can ask all the questions to see, you know, make sure it's a good fit for you and vice versa, make sure that you're a good fit for the bootcamp. So at a 90 96% job placement rate for graduates within six months, this is a very successful program. So for those of my students who graduate yet 96% of them are placed within six months, most are placed within like a month or two, I would say 80% are placed within like a month or two. And that is just because of the the curriculum that we provide, as well as the level of support that you get inside of the boot camp. It is, in my opinion, top class top rated. So we pride ourselves on that education and that support. And we pride ourselves on that 96% outcome number. So like I said, if your goal is to get a job as a coder, check it out coderscampus.com/bootcamp. Okay. Sweet. So let's get into streams, because like I said, my favorite topic, or at least one of my favorite topics. So first, we will dive into what streams are and why you should care about them. So streams were introduced in Java eight, just like lambdas were introduced in Java eight, which we've been talking about in the past few episodes here on the podcast, and 6:55 what are they? Well, they are essentially another way to iterate through collections. Okay, so what that means in plain English is usually you loop through some sort of a data structure that you may have in your typical, you know, workflow when you when you are writing programs when you're writing code. So in Java, a collection is something like a list or a set or a map, or you know, who knows any combination of those or variation of those. 7:28 A collection is just a bunch of objects crammed into one data structure. And typically, you iterate through them. So typically, it's a for loop, where you you loop through each and every one of the items in a list are the items in a set or the items in a map, you iterate through them so that you can perform some sort of action, right? So for example, let's say, you know, you have a typical example I would go to is user login, right. So if you have a list of users, so you got a bunch of users, and you want to, you know, validate that the user credentials that you've been given, in other words, credentials being username and password, you want to iterate through all the users to see if this, this username password matches with what you have in your database, right in your collection, your list of users or something, or maybe a map, you know, where the key value, I don't know, whatever. This is very common, right? Or maybe you're iterating through a list of bank transactions, you want to go through all your recent bank transactions, so that you can, you know, add up the totals or something, you know, this is very common, right, you do it in a for loop it for each loop type thing. So start with the first transaction, start with the first user, go through each and every one and do something as you are iterating. And going through each one of those objects, each one of those elements in the collection. So in the list or the set or the map, or the whatever collection is just another word for a data structure that holds many other objects inside of it. Right? Go back to your episode on data structures, if you don't know what data structure is, if you don't know what a data structure is, yeah, you're definitely maybe too advanced. This episode may be too advanced. But yeah, so that's what we used to do. That was sort of the old way, we would just iterate using a for loop or something. Could be a while loop as well, any loop you would iterate through, right? Well, what streams allows us to do is more or less the same thing. We can instead of you know, doing using a for loop, we can now use a stream to iterate through our collections. Okay, now, a stream is a lot more advanced than a standard for loop. There's a lot of optim optimizations inside of it. There's a lot of, you know, stuff, low level stuff that I don't want to cover in this podcast because in my opinion, you don't really need to know that stuff to be a great coder. Those are all like interview type questions. And again, I talked once before interview questions are so disconnected with the day to day reality of the coding that you need to do. It's so silly To me, and it's so annoying to me, because anyway, that's a whole nother soapbox I can get on. There's a huge disconnect between what is expected of you in an interview and what is expected of you in the real world. And that's really unfortunate. So anyway, the low level inner workings and you know, bits and pieces of how streams work. Those are interview questions, you're not going to need to know that stuff on a day to day basis. So I want to talk about the real world stuff. That's what I focus on in this podcast. So yeah, a stream the way I summarize a stream in plain English, I say it's a fancy for loop. That's essentially what I what I say. It's a fancy way to loop through a collection. Okay, that is the gist of what a stream is. Obviously, there's a lot more to it. But that's the gist. So considering the fact that a stream is just a fancy for loop or a fancy loop in general, why don't we dive into what makes it different, what makes a stream different from an actual loop? Right. So let's go let's go into an example. Now I have a I've created a repository, a GitHub repo that I will link in the show notes. Let me just make a note to do that here. I'll put it near the top of the episode. So GitHub link here, there, I made a note to put that in there. So if you go to coderscampus.com/53, you will be able to go to the show notes quickly, coders coderscampus.com/53. And you'll be able to see the GitHub link to the repos and you'll be able to see the shownotes should take to the repo singular. So you'll be able to see the code that I'm about to explain verbally to you right now. So if you're not driving, and you're able to you can pull up coderscampus.com/53, click on the GitHub link, and you'll be able to see the code that I'm talking about. So let's compare a simple example of an old way to do things meaning using a loop, and the new way to do things meaning using streams. So for our first example, we're just doing a simple filtering. Okay, we just want to filter a bigger list into a subset of that list meaning whittle down the elements in a list to be fewer elements based on some criteria. In this case, to give a concrete concrete example, I want to talk about a list of names. So we have a bunch of names in a list. A name starting with a going all the way to j. So we have Andrew Betty, Charlie, Darla Eddie Franca, George Hannah, Ivan Juliet. So what does that 10 names ABCDE, F, G, H, I, J. Yeah, 10 names. Look at that. I magically landed on 10. Nice, round number. So yeah, we have all those names in a list. Again, it doesn't matter what the names are, it doesn't matter that they're ABCDEFG. That's just I need to generate some names. And I just did it that way. So the content here doesn't really matter. Other than it's a, it's a bunch of strings. Okay. In this case, it's names because that's more meaningful. So you want to filter this list of names. Okay, this is something that you might want to do in the real world. Here's a bunch of data. And we want to filter that data based on some criteria. In this case, we have a list of names, and I want to filter it based on names that contain a R, T, okay, I don't know why I'd want to do that. That's just a random example that I came up with and chose to put in here. But I want to filter my list by names that contain the string AR, together. Okay, so, given Andrew Betty, Charlie, Darla Eddie Franca, George, Hannah, Ivan, Juliette, can you imagine which of those names contain the combination of letters AR together? Probably not off the top of your head, you might be able to pick one up. But anyway, that's why filtering using you know, code is helpful. So we want to filter the names by names that contain AR. So how do you do that the old way? How do you filter names by a given, you know, given parameter or given criteria? Well, the way you would do it is you would start with the filtered list, you would instantiate it as an array list. In other words, you'd have an empty list, I called it filtered list. And this empty, empty list, specifically ArrayList is waiting to be populated with the matching subset of data here that we're working with that we want to filter down towards, right. So we have we start with an empty list, we pass in our full list the names we pass in the parameter that we want to use. In this case, we want to filter by AR. And then we have our initialized filtered list or initialized empty list. And we want to start iterating through the full list of names. Right, so the full list of names, other words, all 10 names, you want to start iterating through them each one at a time. How do you do that? Well, we use a for loop before each loop to be specific. So we use a string name in names. So as you go through each of the names, you assign it to the variable name. And then we have a variable name in our for loop that we can then use, right, so name is just a string. So then inside of our for loop, we use that name variable. And we say name dot contains are, you know, filter parameters are criteria, because named contains is sort of the the filter. In this case, again, it doesn't necessarily matter what the filter is, and what the parameters are to that are the criteria are. 15:33 What just matters is how do we accomplish this task, right, so we start with an empty list, we have to do a for loop to iterate through all of our collection. In other words, we're iterating through all of our names. And then we say, hey, if this particular name contains our parameters, in other words, contains, you know, ar, is the filter that we're using, in this case, then cool, we have a match this name contains AR, so added to our filtered list. So our filtered list was the array list that was empty at the beginning, we want to populate this new empty list with every matching name that matches the AR, you know, filter. So we add that to the filtered list. And then at the end, once we get through all of our names in the for loop, at the end, we should have a filter to list a subset of the full list that contains our matching names, right? And then we want to return that. So that's it. I mean, that's how you do that with a for loop. Okay, start with an empty list. For each name, find out when the name contains the filter parameter, add it to the filter list. And then at the end, you return that filtered list, which will be a subset of the full list. Okay, so it makes sense. That's, that's fairly straightforward. It's 1234, you know, 567 ish lines of code. Not too bad, not too crazy. So how do we do this in the quote unquote, new way? How do we do this with the streams? Right? Let's talk about it. So in my code, I have a class called old way and new way. So these are two classes, again, not the greatest names for classes. But the old way is what I was just talking about, it was doing this filtering, there was a method in there, I omitted the fact that there was a method doing all this, but it was a method called the filter results. That took two inputs, all the names and the filter parameter. So this same code exists in the new way, class file. So the new the old way, the new way, have the same method that we're invoking here to return the filtered list of names. So we have that same method here, but in a new way, we do not do a for loop. Okay, we're using a stream. So how do you stream things? Well, the stream is based off of the collection. So all pretty much all of the Java, the existing Java collections, have a way to stream, okay, with a list. In this case, we're using a list. The list interface has a dot stream method now. So you're able to do names dot stream. So that starts the process of streaming. And again, what is a stream a stream is just another way to loop. Okay, as we did before, we created a for loop, right? In this case, we don't have to do the for loop, because that's kind of like what the stream is doing. It's allowing us to iterate so to speak. Okay, cool. So we do names dot stream. But then, well, what do we do? Now? Remember, we want to filter these results. How do you do like an if statement to see if a name matches another, you know, matches or contains this filter parameter or whatever, right? So the way streams works, is when you do dot stream, it returns that method returns a stream type. 18:58 And that type has a generic type that it accepts type T or whatever, right? So we have a stream of type t, but what is type T here? We have a stream of something. So what are we streaming? Well, remember, we have a list a collection of what we're dealing with names right now, it's a collection of what it's a collection of string data types, right? That is what our, our collection is, it's a it's a list of string. So when we're doing names dot stream, we're streaming what we are streaming string type. So that that of the keyword there that I use list of string, the of is what's important here. That's what I use in my brain. If the collection it's a collection of something, so that's what the stream is, is iterating over right? It's a stream of string. Unfortunately, those two words are very similar sounding does translate well with audio. So list of string, what's the same thing, same thing. List of string it now it is a stream of string objects. Okay, so we're streaming strings. So when we say names dot stream, which is the new method, dot stream is the fancy method that starts this whole streaming, it returns a stream of strings. Okay, now what can we do with that data type stream of whatever stream of type t, there's a whole bunch of stuff that we can do. So if you do if you do a.on, that stream, there's a whole bunch of other methods that you can do on a stream of whatever type. Okay, well, what can we do? Well, guess what, when you do that on your screen on your screen, and you hit the dot, after the stream method, because getting stream returns a stream of whatever T type, right? When you do a.it shows you all the other methods that you can do on a stream of something. And there are quite a few. There's, there's a bunch of beautiful things that we can do. The one that we want to focus on is we want to focus on the filter. And guess what? Filter takes a predicate? Hey, do you remember what the predicate is? We talked about that in the past episode, I think the last episode, so on 52, we talked about what a predicate is, a predicate takes a generic type t, and returns what it returns a Boolean. Okay, so, predicate takes type t, returns a Boolean, what type T are we talking about here? Well guess what the type is String, because we're streaming strings. So this type here, the the generic type that we're working with, sort of gets filtered through with each one of these steps that we want to do each one of these methods that we are changing, because what we're doing here is we're chaining, we're chaining methods, dot stream, dot filter, is what we're going to be doing dot stream dot filter, so we can chain methods on top of each other. If you want to, you can assign dot stream to a new variable, and then take that new variable name and then on that new variable name, do dot filter. But that's just an extra bunch of noise that you're adding in there. That's, that's okay, if you want to debug in terms of like outputting stuff to the console, or to the system out print line, or whatever. If you want to do it step by step and really have a strong understanding of each one of these steps and have it be very verbose, which defeats the purpose of using streams. But if you want it to be very verbose, so that you can understand it, by all means, go for it. But really the way streams are meant to be used and consumed is using this method chaining concept. So dot stream dot filter, and dot filter is a method that takes a predicate. So the predicate takes type t, remember, it takes type T and returns Boolean, the type in this case is going to be a string. So the filter takes a string as an input in this case, and returns a Boolean. So what is filter do? filter will return true it sorry, I should say IF filter returns true on a stream, that it keeps that particular 23:25 item that you're streaming through, it keeps that particular item in the stream, so to speak, downstream, if you will, it keeps that particular item. And you can do more with it. If If the filter returns false, it throws away that item, it does not care about it. It does not pass it down to the next step. Right. So filtering allows us to keep the things we want and throw away the things that we don't want, which is essentially what we were doing the old way, which was to say, hey, you know, for loop a for each loop, if the name matches our criteria, then add it to a new list. Right? So that's sort of what we're doing here. We're not necessarily Well, we can add it to a new list. But anyway, we're we're keeping going we're considering we're moving forward with anything that returns true here with this predicate with this filter predicate. Okay, so stream dot filter, and then how to use a predicate. Remember, it's just a functional interface that takes in that one, it's one method, I think the film predicates, I forget what the method is called. But it doesn't even matter. You don't need to know the name of the method. Because you can just use the lambda syntax here. So remember our lambda syntax arrows in the middle, to the left of the arrow is the input parameter name, and to the right is the body where we can return something. So dot filter takes the predicate dot filter, we're going to put in name as the name of our variable on the left hand side of the arrow function or the the arrow lambda syntax, because that's essentially what we're filtering here we're filtering a name, because it's a list of names. So really, the way my brain works is whatever we're streaming, whatever we are iterating, over, probably has an S on, it's probably a pluralized, the version of whatever. So names is the plural name, plural variable name here. So names has the s, well, what are we streaming, we're streaming the individual name. So you just cut the s off of the variable name. That's sort of how I typically set up. Streaming makes it very simple and straightforward and easy to understand and read. So we're iterating. we're iterating over names of via a stream. So again, I'm just I keep saying the same code over and over again, by the way, this code is three lines that I keep talking about here with this new way, it's three lines of code, as opposed to like seven before, so it's much more succinct, to get names dot stream, 25:59 dot filter. And then filter is a method that takes in a lambda A predicate. So to do that, we have name on the left hand side of the of the arrow. And then what is on the right hand side, well, remember, the right hand side has to return a boolean value. So what is this boolean value body function, whatever that we need to create here? Well, it's the same as we did in the old way, we just said if name dot contains the parameter, the criteria then return true, right, so we can just do that here, the short form, we don't even need to add body, we don't have to add, sorry, the curly brackets, we can just say, name, because that's the variable name that we chose to name it on the left hand side of the lambda, we can say on the right hand side name dot contains the filter parameter, right, the criteria that we're passing in, and that's it. Right, that's name is on the left, and then name contains the filter parameter on the right. Because named contains will return true if the name contains that filter parameter, right? In this case, AR is a string that we're filtering by. Cool. So we did names dot stream, which returned a string stream of string, then we did dot filter. And we put in our filter parameters, well, what is filter return filter returns another stream of string. Okay, same thing, but the difference here is, it's going to return a subset from the stream above, because we're filtering out some stuff. So if the name contains a our, the filter will return it as a stream of strings in this case, but for our example, it's actually gonna be two names. So I should probably have said that before. So the two names that is going to return here are Charlie and Darla Charlie contains contains AR, ch, ar, right for Charlie. So AR is in there. So boom, we have a match. So it's going to return that in a stream of strings. And it's also going to return Darla, because Darla has D A AR AR, right, we're always looking for the AR is in the names. So we're going to below the filter when we chain another method onto dot filter, because that's what this whole thing can do. We can chain methods onto each other filter returns a stream of strings, but in this case, it's only two string strings, right. It's only it's a stream of two strings, because to match the filter criteria, Charlie and Darla, whereas before and the step above, if we say names, dot stream, names dot stream, we'll have all 10 names. Because we haven't filtered anything, this is just, I want to stream all of the names, right. So names dot stream, will be a stream of 10 strings, right 10 names, but then dot filter will return a stream of strings, but it's only going to be two string strings in that stream. Sorry, again, stream string stream strings. I'm trying to enunciate as best as I can. So yeah, dot filter will give us a subset, right? They'll give us two strings in a single stream. Cool. So now what do we do? Well, we can do another.in. This case, we're doing something called dot collect. And we're saying collectors.to list. I went over that really quickly. Because there's there's more on your talk about about dot collect. So where the heck did that come from? Trevor, you probably are saying I was with you with a dot stream that sort of makes sense. You know, you're iterating over all of the, you know, items in the collection. we're iterating all over all 10 names. And then you said dot filter, and that got a bit more confusing. We're filtering, but you know, true means keep it false means throw it away and send it downstream. Okay, I think I understand what you mean. But then what the heck does collect mean so before I dive into what I collected means you need to understand that when you're streaming, there are, I think a couple of maybe more than a couple. But there are a couple types of methods that we can that we can use here. There, I should say couple of categories of methods when streaming. So there are a couple of categories, or at least a couple of important categories of methods. When we're talking about streams, the first category is 30:31 called an intermediate operation. So filter is an intermediate operation, you can categorize, filter as an intermediate operation. Okay? What that means is, you can perform a bunch of different intermediate operations on a stream, if you like, you can perform one you can perform none or you can perform many intermediate operations on a stream. In other words, these intermediate operations allow you to mess with the stream, change it in some way, or, or shape or form, right. In this case, we're filtering so we are removing elements from our stream. There are other intermediate operations that you can do that modify the stream. We'll talk about another one in well, can we talk about it in this episode, How long, I've been talking for 30 minutes. Okay, so maybe we'll talk about that in the next episode, another oper, another intermediate operation that you can do. So you start a stream, that's like the start of the whole thing, you can perform zero or sort of, I don't wanna say Unlimited, but zero or more intermediate operations on the stream, and then you can perform one terminal operation. Okay, a terminal operation is an operation that you can do once at the very end. Okay, so typically, the way a stream goes is the stream starts. And then on the stream, you do zero or more intermediary, intermediate operations, and then you perform one terminal operation. That is the generic and common blueprint for streams. Okay, so a terminal operation is what you do at the end. And the terminal operations typically take in some sort of, I think it's a supplier is the is that right supplier, does a supplier return? I can't remember anymore. We just talked about this, I think a supplier just returned something, as it takes something in, it returns a result. I forget if it takes, if it takes no, it doesn't take a parameter. At least I don't think it has to, because it already knows from above what what it has access to. So I believe the supplier just returns something back. So in this case, dot collect, has picked a supplier and the supplier in this case is called, we use something called collector.to list, or sorry, collectors with an S collectors is a special sort of helper method that allows us to do a bunch of stuff. So collector.to list allows us to take in the items that are coming from upstream, and then just says, Take everything that we have at this point and turn it into a list. Okay, so I know that was a bit confusing, I didn't do a great job explaining it. I got mixed up there with supplier versus consumer. Right, those are the two I just talked about this, you can see you can hopefully take some 33:59 some solace take feel good about the fact that I'm even still confused about this stuff, right? So and I've been doing this for like, I don't know, how long but using Java eight stuff, I don't know years, it's been two years that I've been doing this. So it just goes to show you don't need to know I'm trying to get into the inner workings of how everything and you don't need to know the inner workings all i All I think about and all I know is that I can do dot collect, which is a terminal operation which you need to have a terminal operation with a stream to do anything with it, do anything useful with it. So dot collect is a terminal operation and it allows us to take what items we have left in the stream and then turn them into something useful like a list or a set or a map or whatever, right. So there's a bunch of things that you can do with a collector. So you can say collect dot collect as the as the method. So dot collector is the method which is called a terminal operation. And then you pass in collectors dot something. So collectors.to list will turn whatever items we have left into a list. Okay, so that's it. That was a lot of explaining. But really all that explaining was for three lines of code, right? Names dot stream stream is a method for invoking it. So we have round brackets, names dot stream with round brackets, dot filter. With round brackets, what are we putting in the filter, we're putting a lambda name on the left arrow named contains filter params. On the right, that's how we filter out all the names that don't have AR in them. And then chaining another method dot collect, get, it's a method we're invoking. So we have to the open close parentheses here. And then we pass in collectors.to. List, collectors is the utility type object that we use here. That allows us to yeah, do all sorts of different ways to collect stuff, in this case, collectors.to list takes whatever we have upstream and turns it into a list. So then we can return that. So that's what we do to return a list of names that are filtered by a certain result. That's how we do it, we stream we filter, we collect done three lines of code. Cool. So that's what streams are, they are a different way to do a loop. And streams are composed of typically the initial dot stream to get started, then it has zero or more intermediary options. In this case, one of the intermediary options or operations that we did was filter, which reduces the number of items because we're filtering out stuff. And then we collect the terminal operation. So stream it, zero or more intermediary operations. And then collect is the terminal operation. So a terminal operation. So another example of a terminal operations do a for each. So which is you know, instead of saying collect, I could have said dot for each. And the difference there is dot collect allows us to put all that stuff into a variable, right? In this case, we're putting it all into a list. So we're taking the filtered results and putting it into a list, which is cool, because you want we want to return that list, right? We could have also alternatively use dot for each. So instead of just returning those last two names that we filtered, instead of just having those two names and returning them to a new list, we could have just said dot for each and done something with them, right? That's another terminal operation. In this case, we want to be able to return that list so that we can do something with it. But hey, if all we needed to do was like print out those names, we could have done done a dot for each and just printed them out. Right, that would have been another way to do it. So apologies for being long winded here. But I guess that's the whole point of this podcast is to be long winded. My hope was I could talk about another intermediate intermediary step. But yeah, we will all let your brain digest everything that we just talked about about streams. And in the next episode, we will dive into another really cool intermediary option called Map, which is probably the single most confused, that's right word confusing, intermediary operation that exists, because it shares the name of the data structure, right? In Java, there's a data structure called Map. And whenever my students learn about streams, and they hear about dot map, they immediately think it means convert it to a hash map. And it's like no, it does not mean that. So we will dive into the complexities of what dot map is as an intermediary operation. And obviously, we'll dive into some more stuff probably in the next 38:48 episode of the podcast, because there's more obviously to talk about with respect to streams. But to sum up, streams are less verbose way to do operations on a collection of objects. If I zoomed out to the 10,000 foot view, or whatever, 50,000 foot view, that is the gist of what streams do, because in our daily lives as coders, we do crud, all day long. crud, creating, reading, updating, deleting data, create, read, update, delete, see our UD crud, right, that's what we do on a day to day basis, we do crud, and as a part of crud, with reading data with the R step. Typically, we read data from the database. And when we read the data from a database, or a file or whatever your you know, your what's the what's the, your persistence thing, if it's a database, if it's a file, if it's a, an API, whatever your you know, data stream coming in is, typically we read it into a collection of some sort, and then typically We take that collection, and then we do something with it, we modify it, we enhance it, we tweak it, we do something with that collection that we've read from a database or an API or a file or what have you. We do something with that data, we modify it, and then we send it to the front end. And vice versa, we take it from the front end, we modify it, and we send it to the backend, right? That intermediary step there not to use the same word that exists in streams, that middle step that we do with respect to either pulling it from the database and putting it the front end, or taking it from the front end and putting it in the database. There's that middle step, where we typically iterate over a collection of items and do something with it, right. That's where streams shine. And there's obviously more streams and what we've talked about. But this is where this is something we do all the time, we see a lot of for loops, iterating over things and modifying things. And what happens is the statements, these blocks of code of for loops, can get really long and verbose. And really be difficult to understand. And you'll be amazed at how much more easily you can understand code when it is not in a for loop. And rather when it is inside of a stream. That is where streams shine. They are so much more readable. You can look at it and understand a more complex stream of operations in seconds when compared to probably upwards of hours with a for loop, maybe not hours, maybe that's a bit, too, you know, going too far. But minutes, I would say seconds versus minutes when it comes to understanding code and reading it. So that's the beauty of streams. And having said that, like I said at the top of this episode, the boot camp is something that I would highly recommend you checking out if you haven't already done so coderscampus.com/bootcamp allows you to Yeah, dip your toes in those waters, check out with the boot campers about learn more about it, see if it'd be a good fit for you. Like I said, if your goal is to get a job as a coder, oh my goodness, this is what I shine that and this is what I've dedicated my now career two is helping people transition from where they are to being job ready in as short a period as possible with as least amount of pain as possible. That's the point of the bootcamp. In my opinion. Like I said before, it is not only the fastest way to do it, it is also the cheapest way to do it. And there's data to back that up when it comes to completely self taught versus doing something like a boot camp versus doing something like a college degree. So it is the sweet spot in my opinion with respect to achieving the goal of getting a job in the real world. So if you are at you know, one out of 100 in terms of job readiness, I'd highly recommend applying to the boot camp coderscampus.com/bootcamp. I will see you there. Hopefully I will talk to you soon. Otherwise, I will see you in the next episode of the podcast. Take care everyone. Happy learning and bye for now. 42:58 Thanks for listening to this episode of the coders campus podcast. But before you go, Trevor has a favorite ask you. In order to keep these episodes free, he'd love for you to leave a rating and review the podcast on iTunes. Just go to coders campus.com/review to leave your own rating and review of the show. So if you have 30 seconds to spare right now, please help out by leaving a rating and review via coders campus.com/review It will ensure that you continue to get these awesome free podcast episodes each and every week. So if you like free swag, head on over to coders campus.com/review Happy Learning The post EP53 – Intro to Streams in Java appeared first on Coders Campus .…
 
In this episode we'll talk about 7 common Functional Interfaces that Java provides to us. UnaryOperator, BinaryOperator, Supplier, Consumer, Function, Predicate and BiPredicate Episode Transcript 0:09 Welcome to the coders campus podcast, where you'll learn how to code from one of the best teachers in the industry. Whether you're an absolute beginner or a seasoned pro, the coders campus podcast will teach you what you need to know to master the art of programming. 0:24 And now, your host, Trevor page. All right, ladies and gentlemen, fellow coders. Welcome to Episode 52 of the coders campus podcast. As always a pleasure to be here, again, bringing you the knowledge that you need to succeed as a coder. So on that vein, as per last episode, just want to preface this by saying, if you haven't checked out the boot camp, yet, we have cohorts launching every single month. And if your goal is to get a job as a coder in as little time as possible, within reason, we're not talking about, hey, do this little thing. And in two months, you'll be getting a job with 100,000 notes. So we're a lot more realistic here at coders campus. So yeah, our boot camps are about six months in duration, we have a very high success rate. But yeah, we'll talk more about that at the end of the episode. So if you haven't already checked it out, coderscampus.com/bootcamp if you're interested in launching your career as a coder. Alright, so now into the content. For today's episode, we are continuing our talk on functional interfaces. We mentioned in the last episode that there were some popular functional interfaces that are provided to us by the good folks at Java at I guess Oracle owns it currently. And these functional interfaces that are provided to us are quite useful. So much so that like I had alluded to in the previous episode, we don't tend to create our own functional interfaces, we only tend to leverage the existing ones. So obviously, let's talk about the existing ones that are out there, in no particular order. But these are the popular ones, there are many more than the sort of five that we're going to be talking about today. But the the, the the other ones are sort of variations of these five that we're going to talk about. So once you know and understand these five, the rest of them tend to be 2:27 fairly straightforward to understand. You'll see them and say, Oh, that's a variation of one of the five that Trevor taught me and I get it right. So let's start with the first with the five. Let me see is it 512345667? Sorry, I've been saying five, seven. 2:45 Although anyway, we'll dive into the popular ones. So again, just a recap, in case you Well, if you missed the last episode, go back and listen to it. Because if you don't want to functional interfaces, you're going to be entirely lost with this conversation right now. So highly recommend going back to the previous episode to listen up and learn about functional interfaces. But the first functional interface that we will talk about 3:11 is one called the predicate. Now these names are terrible, in my opinion, I hear the word predicate, and I'm sure maybe some people it clicks and make sense, it still hasn't clicked in my brain yet. But predicate is the name of this functional interface anyway, and it takes one generic type T. Okay, so this is a throwback to generics, hopefully you understand what generics are. Very quick recap of generics, you can think of these single capital letters that are known as generics usually encased in the angle brackets. For example, if you see a list, so give a list of something like a list of strings. The other is usually I say, of, but I you write out the angle brackets, so less than and greater than symbol. And in between those less than greater than symbols, you put the type. So in this case, if you have a list of strings, you would say list, open angle bracket, and you would put string as a data type, and then you close the angle bracket. And then you could instantiate that list with as an array list of strings or, or it could be a list of, you know, any object can be a list of double, it could be a list of user, it could be a list of anything. The point is the of their the word of typically means generic, right? It's a list of something. And that could be anything therefore that anything can be generic. Previously, you would use just the object type. Okay, object would be what you would throw in there, but then you need to cast it all the time, you'd have to cast object to your desired type. And casting can be a little bit wonky at times it can cause issues and it's just a it's just more mess. So Java introduced generics in, I think, version five or something. I've done an episode on generics. So if you don't know what generics are, I would obviously recommend brushing up on that as well. Now 5:00 That's all I will say about generics getting back to these functional interfaces, specifically the predicate functional interface. predicate takes one type T. Okay, so it uses generics a generic type. So it takes a single parameter, okay with this single type, 5:21 and it returns a Boolean. 5:25 So it has one input to its method. 5:29 And it has a return value of Boolean, so it returns a Boolean. 5:35 Okay, so this is like a framework, this is a very generic function, right? That's so you can think of these functional interfaces as as like, sort of templates for functions that are generic that you can just use. Because think of any function that you've written in the past, have you ever written a function that took in a single parameter and then returned to Boolean? I'm sure you have written a function that does that, for example, I've written one called validate user before in some of my projects, right? You want to validate a user. So you take in a user object, and inside of that user object, which has a type, there's a, you know, a username and a password or something. And then you take the username and password and you compare it against your database to see if this user exists in the database. If it does, does the passwords match exactly. If they do, then you return true. This is a valid user, or you return false. This is not a valid user. Right? So that's single 6:31 example of validate user as a as a method of function. That could be classified as a predicate. That's what predicate is all about. That's the generic, you know, functional interface that Java gives to us this generic template that we can leverage 6:49 in a bunch of places. One common place that you would use a predicate is in something called filter. So filter is something that comes with streams, we'll talk about streams, after we've done with this lesson, most likely. 7:04 filter allows us to filter out items from a collection. So if you have a list of users, and let's say in that list of users, you only want to be you only want to consider users that are active or something as an example, you only want to look at active users, active users can be defined as anything, but let's define them as you know, users that have paid their bill, right. So they're not, they haven't failed payments, or something like that, I don't know. So that the users in your system are active, and you only want to look at the active users, how you would do that is you would you would get a collection of all users. This is one way of doing it. You can have a collection of all users and then you can filter out the ones that are not active. So what filter does is it takes a predicate filter is a function that takes a predicate as its input. Okay, this is where in the past episode, I was talking about how the concept of functional interfaces and the introduction of functional interfaces here allows us to treat functions as parameters. Right? This we couldn't do this before. In the world of Java, you couldn't pass a function as a parameter to another function. Right? That's just it couldn't be done. You couldn't you can't do that. Now that became popular in JavaScript. And I'm sure other languages as well, other functional languages. And then Java, like I said, before, copied it shamelessly copied it and said, Hey, look at this great new feature that we have, are we the best? So yeah, this is what's happening here. The filter function takes another function in this case, functional interface as a parameter, and more specifically, it takes the predicate functional interface as a parameter, okay? Because the predicate takes in a type and returns a Boolean, right? So you filter out users that are that are not active, the filter method would take in a predicate, and the predicate would be you pass in a user, as, you know, part of your collection of users that you have, like, say, you have a list of users, you take in the user, that's your input. You type input type is user and the individual users in the collection, the list of users are what is being fed in one at a time, and the output is true or false. So in this case, you would sit you you know, write some code to see is this user active or not. So you would return true if the user is active, you would return false if the user is not active, that's a predicate right and that allows us to use this lambda syntax with the filter function. You know dot filter is a function, the input to the filter is this predicate and remember predicate is a functional interface. Therefore, you can use the lambda 9:56 which call it syntax. So filter can take 10:00 In a function so to speak, you type in the lambda syntax. So filter would, you know, you pass in a user, so user would be on the left, because it's your single 10:09 input value, you don't even need round brackets around that, believe it or not, when you have more than one input type with the lambda syntax. If you have more than one input type to the method, then you have to use your round brackets. But believe it or not, you can drop the round bracket. So you can just have dot filter, open up the round bracket for the filter function. And then just type in the single word user. Now you can call that word, whatever you like, it's just the name of the variable that's going into the input, the methods input, the method being the predicates, method, whatever that's called I forget, if it's like apply or might not be apply, I forget what it's called in there. But it doesn't matter, you don't have to know the name of it. There's a single public abstract method inside of the predicate functional interface. And it doesn't matter what the name is, because there's only one method and we Java knows, that's the method that we are executing here. And that method takes in one parameter of type t, and it returns a Boolean, that's what the predicate does, that's what the I should say, that's what the method inside of the predicate functional interface does. 11:14 Okay, so going back to dot filter, so you have dot filter, and then you're using the open bracket for the dot filter method, and then you pass in whatever parameter you want, whatever name of variable you want, since we are talking about iterating, through users here, again, this is I'm talking about it from a streams perspective. So if you haven't learned about spring streams, yet, there's a, there's gonna be a void, there's gonna be a gap in your knowledge as to what I'm talking about. But don't worry about that. Let's just focus on the filter here. And let's assume that we can have an input in here, and it's going to be a user. So you put in the word user, because that's what we have as an input. And then you have your arrow, minus sign greater than symbol. So on the on the right hand side is the body of the method that's going to return something returned, specifically a Boolean. So you can write whatever code that you know, you can just write user.is active, maybe you already have a method that's associated to finding out whether or not a user is active or not. And maybe that function is called user.is. Active, maybe it's, you know, a method in the user class. Okay. So that's all there is, you'd have on the left hand side, you have user and then you have the arrow, and on the right hand side, you'd say user.is. Active. And that's it. That's all the code you write, and then boom, the filter just works. Okay, because we're leveraging the predicate functional interface. And the filter takes the predicate functional interface 12:31 as its input, right filter takes that functional interface as its input, and how do we use functional interfaces? In Java? Well, we can use this great lambda syntax, this very non verbose, this very succinct 12:46 syntax, right user on the left arrow, and then user dot get, or user is active on the right of the arrow, and then that's it. You close your whatever, filters, round bracket, and you're done. Okay. 13:00 So that's where it's good. You can you can give this sort of this functionality, this filter functionality could have been anything. It could be any predicate, it could be any function that takes a single parameters input and returns any Boolean as output. That's it, it you can put whatever you like, in there, right? So it's a very, very flexible, that's the whole point of this stuff is it's flexible, and synced. If you've ever used JavaScript, I know I keep harping on this. If you've ever used JavaScript, you will you will be familiar with this, because it's just a very quick and easy and once you understand it, it's like yeah, why? Why? How would you ever not use that syntax? Right? So it just, it's just really good. I really like it. Okay. So predicate, that is one of the most common functional interfaces that Java provides to us. 13:50 Okay, now, here's its partner a little bit less common, but will take me two seconds, hopefully to explain to you there's something called by predicate 14:01 by predicate what is a by predicate, less common than predicate, but it's very easy to explain because it just takes two arguments, and returns a Boolean. 14:13 Okay, the two arguments it takes in I believe, are just type t, I think they have to be of type T. And that's it. unless I'm mistaken. But I again, I don't use my credit a lot. But yeah, it's less common. But it's very easy to understand instead of taking one argument, in other words, instead, instead of taking in like one user, and then checking to see whether or not the user is active or not, this one could take in to the by predicate takes two. So pain, it could be, you know, takes two users and you're doing something else instead of filtering out your I don't know you're doing something else for taking in two users and doing something with those two users. 14:46 Yeah, by predicate, less common, but there you go. Pretty simple to understand. When would you need to take in two arguments and return a Boolean? I don't know. That's you. I'm sure you can spend it. You can probably look through existing 15:00 code and find some use case for that. Right? So it's there, it's there if you need it. Now the question is, actually, I'm gonna pause because I haven't done any research on on the by predicate to see if it extends predicate or if it's some sort of maybe I can do it on the fly here. 15:16 Okay, sorry. So the by predicate takes in two different types, my apologies. That is my misunderstanding. So I was thinking about that when I was saying it out loud. I was like, it takes in two, two parameters, but they have to be the same type. It didn't feel right to me, which is why I may want to double check this. So no, it takes in two different types. T is the first type and you as the second type for the second argument. Okay, it's just there generics, right. You could take, you could pass in the same two types, I guess. But yeah, there you can, it gives you the flexibility of having two completely different inputs. But the point is, it returns a Boolean back. Now the other question I was thinking is, is this some sort of 15:58 extension of predicate does it extend predicate, and I don't see anything on the screen at the moment, as I'm going through here, to see that it does extend predicate. So my assumption then is that the by predicate has its use cases outside of something like the dot filter. So for dot filter, I don't believe you would be able to use by predicate. And I could code that out in front of myself to check that but I'm pretty sure it's, it's a completely different type. 16:32 Because I don't see anything in the documentation as I'm going through it. 16:36 That indicates that it is a 16:40 an extension of predicate so okay. 16:43 This is this is the to, to mid to mid specialization and predicate, whatever that means to arity is that I've never heard that word before. Anyway, these these 16:57 Oracle documentation words, this is why these podcasts exists, right? Because it's so hard to understand the the documentation. So if you have problems understanding, Docs, you're not alone. Okay? Back to it. So that's predicate by predicate. So the next one is called the unary, or unary. Operator. Okay, so the unary operator takes one parameter of type T. Okay, so just like the predicate, so we're very close here in terms of similarity, right, where they both take in one parameter of type t, but this one returns a value of that same type T. 17:37 So that's the difference, the predicate will return a boolean, this one returns a value of that same type generic type T. 17:47 Okay, so can you think of any method that you've ever created any function I'm using the word function and method to be mean that the exact same thing? I, I'm in the habit of using method because I came one of my most, 18:00 not most, what's the word I'm looking for? One of my first languages I worked with, and was most in depth into knew the most about was Visual Basic, and they call the methods. 18:10 That's the one I more or less started with was Visual Basic. So yeah, that's where this this terminology of methods comes from. When I say method, I'm trying to save function more often. So 18:23 the unary operator takes one parameter of type T and returns a value of that same type. So can you think of a function that takes in a parameter of whatever single type generic type t, and will then return that same type? 18:39 There's tons and there's tons and tons and maybe if you can't think of one off the top of your head right now, it's because there's so many I scoured I look for a really common one, a common one is replace all. So it's part of, if you have, I guess, a collection of strings or something along those lines, or a string, you can use a dot replace all. And in one of the iterations of Java, you can use Replace All that takes in a unary operator functional interface as its input for the method. 19:10 Okay, so the dot replace all takes in 19:15 a type A single type t, which in this case is a string, 19:20 and then returns that same string again. 19:24 Right, so it returns the same type does it return true or false? It returns the same type that was inputted inputted into it. So if the string comes in as input, the string goes out as input. If it's an integer that comes in as input, the integer goes out as input. If it's a double that comes in as input, it's a double that goes out as input. If it's a user that comes in as input, it's a user that goes out as input, you get the idea, right? That's what the unary operator is unary meaning one, singular, you know, one type T goes in one type T goes out. Okay? So, if you've ever tried to do a replace all on a string, you want to replace all the you know, 20:00 commas with spaces or you want to replace all the line breaks with tabs, or you want to replace all the tabs with line breaks, or you want to replace all the tabs with comma, right, whatever the case may be, whatever you want to replace. 20:15 You, you take the string as an input, and then you can send the string back as an output. Same thing, right. So that's the unary operator. Now, along the same line, just like before, 20:27 there's something called the binary operator unary, or unary, whatever operator, binary operator, 20:37 any ideas, any any thoughts as to what's going on here? 20:43 It represents, let me just go back to my notes here, I want to make sure I get this right, I don't want to make a mistake, it takes two parameters of a single type, and returns a value with that same type. So it's not two different types here, the binary operator I just double checked. So it's not like by predicate the by predicate allows you to pass in types T and type u, which is two different types. The binary operator 21:09 gives you Sorry, I'm going back gives you one single type that you can work with. 21:14 Okay, so 21:17 it's all type t, here. I'm trying to think do I have a an example? Let's see. Okay, so if you go back to, I don't wanna say this is a common example, this just happens to be an example that we did in the last episode, where we were talking about taking two strings and sort of concatenate them concatenating them together, right. So in this case, that's sort of what the binary operator does, the binary operator functional interface takes a single type t, but it takes two parameters of that single type T and returns that same type back, which is exactly what we're doing with concatenating strings, right, we, we could have essentially leveraged the binary operator in our code, if we did already, that's great. If we didn't, we could have where we took in two strings, string one, string two, s one, S two is what we had in the previous example, both of type string and returns a string as well, right, where t equals string, right? So t is the type T equals string. In this case, in this particular example, again, that example could have been anything, right. But in this example, we did 22:23 get strings. So S one S two takes in two strings, and then it concatenates them together and returns one string, which is the two strings concatenated together with a space. Right? Okay? It could have been integers, right, you could take in two integers, in this case, t equals integer, right takes in two integers, and returns one integer. So an example of that could be more or less any, you know, simple mathematical operation, taking integer one and integer two, and then maybe sum them together, that could be the which call it, the operation that we're performing is a sum operation, right? So take in, you know, and want an end to which number one and number two, add them together and return a single integer. Okay, or it can be n one, n two and subtract them and return that single integer. That's what the binary operator does takes in two arguments of the same type and returns that same type back binary operator. So predicate by predicate unary, operator, binary operator. 23:27 What's another one? Well, to be very generic, and that almost the most generic is the function, functional interface, there's actually a functional interface called function. Right? This one's like super, super, super common, it's so common, I couldn't even think of an example to use for it, because it's just so so common. Some of the previous examples that we used could extend the function functional interface here. That's what common it is. So the function functional interface takes a parameter a single parameter of type t, and returns a result of Type R. In other words, it could be a different result, a different type, as a result, doesn't mean that it has to be different. It could even be the same, right? It could be, it could be the same if you wanted to, in which case, that would just be a unary operator, right? The unary unary operator takes one parameter of type T and returns that same type. But that could also be a function but a function where it is just 24:31 the 24:34 the type and the return type are just the same. In fact, I would, I would guess that the unary operator, let me double check this unary operator. Java is my Google I would imagine this extends function. This function whose functional method is function dot apply. Yeah, so it must extend 24:56 the function. 24:58 Yeah, super interface. 25:00 So that's what they call it. The Super interface of the unary operator is function, but it's just passing in T and T. 25:08 T as type one and t as the return type as well, but also the type. So, yeah, the unary operator just extends function. 25:17 Right? 25:19 Oh, here we go the binary operator that was talking about struggling with earlier to explain to you the super interface of binary operator is by function that makes sense. And the by predicate does that have a super interface? No, does not okay, by predicate does not have a super interface. Okay, cool. Now I'm starting to notice some stuff in the documentation. So focus, okay. function, like I said, is so generic that many things sort of extended, right function just takes any type t, any sir, I should say any argument or any parameter of type t, and returns a result that could be of a different type. Okay, that's it. And again, all of these things, all of these 26:03 functional interfaces have a single public abstract method defined inside of it. Right. So each one of these might be called something different, it can be done, you know, dot apply, the by predicate Can I see what is called the by predicate has done test, which I assume the predicate has test is its method, the binary operator has, what is the name of the single abstract method that it has inside of it. 26:32 That it's been by Max pi, I actually don't know I guess it is super interfacial. By function. So by function has apply. So by function has apply. Same with function has apply. 26:45 binary operator leverages by function, but extends it by adding in some additional helper methods that I don't want, I don't want to get distracted with those right now, I just want to talk about the basics of these guys. But just know that some of these 27:00 functional interfaces provide other sort of helper methods that allow us to do fun things with it, maybe I'll dive into one of them for the function, functional interface, since I'm supposed to be talking about the function, functional interface right now. 27:19 Java and sort of typing it in so I can get that prepped. So the function functional interface is, like I said, very generic, it can take in any type t and return any result are. So this one is used 27:35 a lot everywhere, right? Think of any function you've ever written in your life in Java that would fall under this flag that under this not flag weather, this template, okay, pretty much, almost all of your code that you've written, except for the exception of when you have two inputs into the method, or three inputs, or four inputs, right function is just for one input. And then a different result. Type I should say, by function takes into so you see how generic these are you see why these, 28:13 these interfaces were supplied to us by Java, because they're so so common, and you can use them everywhere. Okay, that's what makes this stuff so powerful. And that's what allows us to leverage the beautiful, non verbose syntax of the 28:33 lambda syntax, right? The lambda syntax is super, super easy. In terms of easy on the eyes, a lot going on under underneath the hood, which is why we're talking about it, but super easy on the eyes. Okay. So 28:46 next up is one called supplier. Okay, another functional interface. supplier is also fairly common. Supplier doesn't take any parameters at all. It just produces a result of type T. Okay, so no inputs, just produces a result. So an example of when you might use this is, if you just want to have a function that just quickly produces any result, right? So an example might be, hey, give me a random number. Like there's no the you don't need to give it an input. You don't there's no input to a function that just returns a random number. It's just hey, give me a random number. I don't need to give you anything, you just need to give me a random number. So that's, that's an example of a supplier it supplies a result without having to take anything in as an input. But the type that it returns as a result is of type T. So take that for what it's worth you need to have, you need to specify that type. Now the this one gets tricky because it can confuse people with the syntax. So I want to dive in to specifically the syntax of a supplier functional interface. 30:00 When it comes to typing out the lambda syntax, so again, lambda syntax calling back to the previous episode, lambda syntax is when you have that arrow, right, the minus sign with the greater than symbol together. That's the arrow. That means lambda in my brain, that's what I do. There is something to the left of lambda something to the right of the lamda. To the left of the lambda is the method signature to the right of the lambda is the body of the method. That's how this works. Now, what is the method signature of a method that takes no inputs? 30:34 Okay, I'll say that, again, what is the method signature of a method that takes no inputs? So the method signatures is the name of the method and then an empty, open and close bracket, or opening close parentheses, I should say. So it's the it's just the name of the method, and then boom, boom, open bracket, close bracket. But remember, in the lambda syntax, we don't need the name of the method, because you already have a method that we are using and leveraging that as a single public abstract method inside of the functional interface. Right. 31:04 So what is the syntax, the syntax is just an empty opening, close parentheses, that's it, there's no name that goes in there. It's just an empty, open, close, and then the arrow, and then there's the stuff on the right of the arrow, which you know, should return something if you don't define the body with the curly brackets, if you just want it to return, you can omit the body, if you can do it all in one line, you can omit the body and just say, you know, for this example, returning a random number, it could be just be, you know, the open close parentheses, arrow, and then math dot random, done. Right, math dot random, it'll automatically return that. And great. There's our an example of a supplier method that we have implemented with a lambda syntax. Okay, so that's the tricky, the tricky part of this supplier syntax is there's no inputs. So just have to remember that the empty brackets are needed, it needs something, even if it's empty, because hey, that exists in the real world, too. We can have methods that take no inputs, how do you properly write out the syntax of a method that takes no inputs? It's just an open and close parentheses with nothing in between. Okay, same goes for the lambda syntax. Cool. Cool. Sorry, if the clap was loud. So next up is Consumer functional interface is the last of our sort of seven that we're talking about. The Consumer functional interface. 32:28 Also pretty common. 32:30 It's kind of the the, the polar opposite of the supplier. So there's supplier and a consumer, a consumer, if you had to guess if it's what is the opposite of a supplier? If a supplier takes no inputs, and rather just returns an output of type t, a result of type T? What is the opposite of that? Well, it's the consumer, which takes a parameter of type T but doesn't return any results. 32:57 Okay. So you might be thinking, Wait, a consumer takes a parameter, a single parameter of type t, but doesn't return anything? Well, how is that useful? Have you ever written a method that takes inputs but doesn't have any outputs whatsoever? Well, possibly, what about logging, logging is a very common example of this, right? When you are logging something, you're taking some sort of input, which is typically a message or something, and you're printing it to the log, but you're not returning anything, it doesn't need to return anything, it's just a void method. Right, that's what a consumer is a consumer will take an input to consumes an input and just doesn't return anything back. Has it doesn't need to so again, a common example this might be logging something or or it's just like a system out print line type thing. Good example of leveraging consumer and whatnot. So, those are the seven common types really five are common and then there was two in there that I threw in there that were you know, 34:00 variations of the common ones the common ones are predicate which takes a parameter returns a Boolean 34:09 unary operator takes a parameter and then returns a parameter of that same type t okay. So predicate unary operator function which is super common takes any type t returns any type our supplier 34:26 takes in nothing but returns something consumer takes in something but returns nothing. 34:33 Okay. And then there are variations of them right. So predicate has by predicate unary operator has binary operator function has by function supplier might even have by supplier I don't even know if I typed in 34:45 by supplier. 34:48 Java, would that would that exist? Maybe it looks like it might by supplier. 34:55 I've seen by consumer by predicate by function but not by supplier. The concept to me 35:00 function predicate different in supplier blah, blah, blah. Anyway, it looks like there is no by supplier. 35:05 A by supplier simply wouldn't make sense a method returns a value of a single type in Java. It's true. That's good point. Yeah. Okay. So the supplier supplies a result of type t, which is the return statement. In Java, you can't return two types, so to speak. That's just not how Java works. So a by supplier wouldn't actually make sense. You can't return two different types, unless they are concatenated inside of one type, right? Then you just return the one type. So that's my bad. So yeah, there's a by predicate a binary operator a buy function, a by consumer, but not a by supplier, because that wouldn't make sense. But, you know, there you go, you learn something. I'm literally just learning something new in front of you, which makes total sense. But there you go. 35:50 And there are variations on all those as well. There are some that specifically deal with specific types and whatnot. But yeah, I don't want to get into those because you know, we could we could be here all day talking about it. But those are the important ones that you need to fundamentally understand. I mean, you don't have to fundamentally understand them. But understanding them really helps to demystify all of the stuff that we're about to talk about, which is streams in the next episode. So having this foundational knowledge really helps to clear stuff up, when we're talking about streams, just helps to live some of the fog and some of the gaps in the knowledge that might lead to confusion and head scratching. So those are the popular functional interfaces. One thing to mention, is that the function functional interface, so the function, functional interface in Java, let me just pull up the doc on that guy. Where is it? Here it is. So the function functional interface has other methods inside of it, that are that are called default methods. So one of the caveats to functional interfaces is that yes, there can be only one public abstract method inside of a functional interface. If you try to add any more than one public abstract method, it will fail, but you are allowed to have as many default methods in there as you like, because default methods you are forced to supply a body. In other words, they are not abstract. Okay, so you can add other non abstract methods inside of functional interfaces. And this is what Java does provide to us, in many of these functional interfaces that I've already talked about. So for the function functional interface, to give you an example of one of these, there's a default method called and then 37:42 I'll say that, again, there is a default method included in the function functional interface. There's a default method called and then, and that default method called and then takes another function. 37:59 Okay, so what this allows us to do is we can run or execute one functional one function, functional interface, lambda method, right, we could supply a method that does something, and then we can chain another one, we can chain another function after it with the dot, and then you can pass it another functional interface. And guess what we do that another function functional interface, that one can then be chained with dot and then 38:30 okay, so you can have this method chaining of do this, and then that, and then that, and then that, and then that and that and then stop, right. So 38:39 really super powerful stuff. And this is highly leveraged inside of streams, as we will talk about in the next lesson, such as one example of one default 38:50 method that is, you know, identifier used inside of just one of the super common functional interfaces. Just to give you an example, and just let you know, there's more to these functional interfaces than just the single public abstract method. There's also some default methods in there that are super helpful, that allow us to unlock a lot of additional functionality. So cool. Having said that, the important topic outside of this that I want to chat about, which I'm sure you see coming is the Java bootcamp. Again, we run these every single month. If you love this content, if you'd love to learn this stuff, if you're passionate about it, if all you want to do is get paid to be a coder, but you just haven't gotten there yet. You've been struggling with it, you need help. If you've been trying to do it on your own. 39:35 It's time to consider bringing on some help right. So inside of my boot camp, I forget I've talked about this I've probably talked about this before if I have forgive me, but it's important to say a lot of people think that boot camps are 39:51 only for someone who's already wealthy and they're super expensive and you know, I could never afford a boot camp. And while that is true, there's a lot of X there's a lot of support. 40:00 Along with boot camp, right? It's not just an online course. Again, I've said this in the past, if I wish I could just run my business with online courses, they are so much easier, I could do what I'm doing right now, all day long. I could talk to a microphone all day long and send it out to millions of people. I could record a video series a bunch of lectures and put them out and sell them to people all around the globe and not have to worry about it. Boot Camps are so much more work for me, I've had to hire a team, I've got a team of like five people working for me now. There's so much more of my time goes into running a boot camp than anything else I've ever had to do my entire life. I should say, in my professional career, boot camps are so exhaustedly involved, but they produce results. And that's why I'm running a boot camp again, I would much rather I actively tried not to do a boot camp. Guys, I, I didn't want to do it. But I couldn't argue with the math and the numbers. The purpose of my business is to help create the next generation of great coders. Okay, I want to I want to empower you guys to have the knowledge and the confidence and the abilities to go out there and get a job as a coder and literally change the world and change your life. I know that's a bit it sounds, you know, a bit HYPEE. But it's true. If you're someone who has an average salary and average middle class salary, becoming a coder multiplies that by like a factor of two to four, two, sometimes like 10. Yeah, it depends on where you live, it can be 10, though. 41:39 It is a very lucrative career, as I'm sure you already know. But there's a reason why it's so lucrative. There is a huge lack of coders out there a huge lack of capable coders out there. And you know why there's a huge lack of capable coders. Because it's so, so difficult to learn this stuff. Okay. So if you have been trying to learn this on your own, if you've been trying to learn it from books, from podcasts, from YouTube videos, and series, and, and some courses, some online courses that you've purchased for, you know, anywhere from $1, to like $50 to $100, and you still don't seem to be getting it and there still seems to be a lot of frustration and gaps in your knowledge and you still stare at your screen blankly when you come up to like a project that you need to do or an assignment and you're like, I don't even know where to begin. There's a reason for that. This stuff is hard. Every single bootcamp student I've ever taught goes through that. 42:37 Okay, learning how to code is extremely difficult. You wouldn't think it, you wouldn't believe it, when you hear the people out there on the street, so to speak, and on the internet, touting that they are self taught. And I you know, don't take a boot camp, they're scams and don't, don't go to college, it's a scam, that kind of thing. Well, that's a very vocal minority. In my experience, I want I don't know, it's like Survivor bias is sort of what's happening there. It's like this one guy was able to do it on their own. And this one girl was able to do it on her own, and do it self taught without having to, you know, spend a bunch of money, etc, etc. Yes, it can be done. But in my experience, that is the vast minority of people, but they tend to be the loudest, right? I think in our society today, we're very familiar with the vocal minorities. So that is, what's happening here. If, if that's what's in your head, if you believe that? Well, it's entirely possible to do it on my own. Yes, it's just highly unlikely. And if you could do it on your own great, my work here is done. I wish, I wish that 100% of the people could do it on their own. Because then I could have a great business just doing what it is, that's so much easier, which is just recording podcast episodes, YouTube videos, and online courses. And that's it. That's not the reality of the situation that we are faced with in today's world. So that's why boot camps exist. Boot Camps exist, to kick your butts to hold you accountable to give you a deadline, and to enforce that deadline and and get you past these roadblocks, that you hit these mental roadblocks that stop you from moving forward and make it so easy to quit. Right? But when you've invested in a boot camp, it's a lot less easy to quit, because you've got a lot of money on the line, so to speak. So getting back to my original point of, you know, boot camps are expensive. Yes, but that's why we have a lot of financing options available. If you live in the US right now. And you're listening to this and you have decent credit. There's tons of financing options available, so much so that you might even be able to do the Bootcamp for $0 and you don't pay until after you have graduated. Okay, maybe even three months after you graduated from the boot camp. So think about that. You can literally pay nothing now. And then you don't pay until after you graduate and once you have employment which 45:00 Most of our coders that graduate have a job within a month or two, I think 80% Get a job within the first month or two after the bootcamp. Okay, it's a six month bootcamp. So if you if you're someone that we don't see this a lot, because normally the people who are most interested in taking this career track, maybe don't have the greatest credit, because they've been working in a job that doesn't pay them, well, they haven't been able to pay all their bills, and they, there are some collections, and there are some issues with their credit. But hey, if you're someone who has decent credit, you know, decent being, you know, above 650 credit score, you could probably get approved for $0, down to go into the bootcamp. Right. So then that's not an excuse anymore, you don't have the excuse of I can't afford it. You can't afford $0. So then it's just a matter of you don't believe that it's worth it. You don't believe that this can be done? 45:48 And I would say that if you come at it with that attitude, then you're probably right. Right? The beliefs that we hold, tend to become reality with time, right? If we truly believe that we are incapable, then guess what's going to happen? 46:06 Right. But if we truly believe that we can do something, guess what's going to happen? 46:12 Right? There's a very popular quote, I forget who it was it said it. It's whether whether you believe you can or whether you believe you cannot. You're correct. 46:22 Okay, I forget, I should know who that is. I think I was like, I think Henry Ford is the one who's quoted as saying, and I forget if it's Henry Ford, but it's very true. Mindset is so important, which is one of the main aspects inside the boot camp, this reassurance that you can do it, this reassurance that I've seen it hundreds of times, if not 1000s of times before, what you're going through right now. I've seen that play out time and time again. And all it takes is to realize, Oh, I'm not alone. Okay, I'm not stupid. Oh, I'm not an idiot. Oh, this is very hard. And oh, all I need to do is just stick to it and listen to my mentor, listen to Trevor, listen to his staff, follow the curriculum, do the proven system that leads to the amazing outcome of getting a job as a coder. Right? So anyway, there's plenty of options in terms of financing. Again, if you have decent credit, and you are someone who lives in the US lots of options. If you're in Canada or the UK, we do have options for something called an income share agreement, our income share agreement, if you've heard about that before, and you have a lot of negative connotations in your mind. Our income share agreement is not a pret a predatory practice. Okay, there's a lot of predatory income share agreements out there that take a huge chunk of your paycheck, some take up like 50% of your paycheck every month to pay, but it's just ridiculous. So ours is like 9.8%. So anyway, there's an income share agreement whereby you put some money down before the bootcamp is not $0. But you do put some money down before the boot camp, usually, it's like 10 to 20% of the cost. And then that the first all the rest until after you graduated. And once you have a job, right, so there are those options to these become very affordable as well, in contrast to paying off the entire balance of the bootcamp upfront. So just to let you know, just to sort of SWAT down some of the objections that you might have in your head, it is possible, okay, it's very possible to afford it, it's very possible to get into it. It does cost money, yes. Because this is the most intensive 48:28 program that you're ever going to enroll into with respect to achieving your goal of getting a job as a coder. So if you want to get a job as a coder, 48:38 I'm obviously a big believer in boot camps in general now, because I've been doing this for 10 years, and I see that the boot camps are the most effective way, and the fastest. And believe it or not the cheapest way to get a job call back to another episode I've done on explaining the financials, of being self taught versus boot camp versus going to school, the post secondary through university or college, whatever. Boot Camps are actually the cheapest. When you look at the data and laid out in front of you, on average, boot camps are the cheapest route. So there's no excuse. The only excuse in the book, in my opinion is if you don't live inside of you know, US, Canada, UK, or some you know, quote, unquote, wealthy country, if you are in a country that is not wealthy, that is unfortunate. I don't have a financial solution for you. I'm so sorry. I wish there was a way that I can literally help every human being on planet Earth. But the the economics of it just don't work. If you don't live inside of a quote, unquote, you know, wealthy country, you know, somewhere in Europe or you know, North America, 49:43 or Australia or something like that. It just unfortunately doesn't work financially. So, for that there are online courses, and then you have to force yourself to be one of those 5% I'm so sorry. If you're outside of the wealthy countries, I just haven't found a way to solve that problem yet. Hey, good business. 50:00 unity there, if anyone's listening who wants to solve that problem, I'm all ears. I've been trying to solve that figure out a way to solve that problem for like a decade. Let me know if you have any solutions. Anyway, I'm rambling. That is the college campus boot camp, I probably should have said a long time ago where to go to get it, coders campus.com/bootcamp, you can apply to see if you meet our criteria to enroll. Because we are looking for people who have a little bit of prior experience. If you're listening to this podcast, you're probably good. 50:31 But yeah, you may need some prior coding experience, you do need some decent credit, if you're looking for financing if you don't have decent credit, but you can pay for all upfront Great, then you no problem there. If you 50:45 are not looking to get a job, then you might not qualify for financing. Because the whole usually the whole financing thing is based off of getting a job. So if you don't want to get a job as a coder, might not be a good fit. But hey, you might as well still apply to see if you get through. We have the whole point is to apply coderscampus.com/bootcamp applied to the boot camp and book call with one of our admissions advisors to have a chat and like I said, make sure that you're a good fit. That's what that call is about. We're going to talk about the boot camp, the specifics of it all the inner workings, we're going to figure out what the best way forward is for you. On this call, we're going to give you the plan the curriculum, we're going to show you the path. And if you want to take that journey with us in the boot camp, and you meet our qualifications. Great, we're happy to accept you into the boot camp and get started. Like I said, we have new ones starting every single month. If you don't meet our criteria, it might just be because you need to brush up on your fundamentals, in which case, we will send you to one of our free courses. You can do the free course once you've completed it, let us know we'll have a look at your code. And then guess what you can get entry into the next boot camp. So 51:57 sound good coderscampus.com/bootcamp. Looking forward to seeing you there. Thank you so much for listening to me talk through all this. If you're still listening, you are incredible, I love you. I can't wait to continue to bring out these episodes, and hopefully Hey, even to see you potentially in the boot camp. But just listening to this is an amazing form of support. And I'm very grateful to have your ears for this conversation right now. And I look forward to the next conversation where we will hopefully be diving into streams. I don't see why we wouldn't be diving into streams in the next episode, but you never know what the future holds. So I'm going to assume that we'll talk about streams next. And I can't wait to see you there. So take care of yourself as always happy learning. And bye for now. Thanks for listening to this episode of the coders campus podcast. But before you go, Trevor has a favorite ask you. In order to keep these episodes free, he'd love for you to leave a rating and review the podcast on iTunes. Just go to coaters campus.com/review to leave your own rating and review of the show. So if you have 30 seconds to spare right now, please help out by leaving a rating and review via coders campus.com/review It will ensure that you continue to get these awesome free podcast episodes each and every week. So if you like free swag, head on over to coders campus.com/review Happy Learning The post EP52 – Most Common Functional Interfaces in Java appeared first on Coders Campus .…
 
Loading …

Ласкаво просимо до Player FM!

Player FM сканує Інтернет для отримання високоякісних подкастів, щоб ви могли насолоджуватися ними зараз. Це найкращий додаток для подкастів, який працює на Android, iPhone і веб-сторінці. Реєстрація для синхронізації підписок між пристроями.

 

Короткий довідник

Слухайте це шоу, досліджуючи
Відтворити