Surfing the AI Wave🏄, Armed⚔️ and Ready🛡️
Explore essential AI tools, legal standards, and expert insights, featuring an exclusive interview and tutorials tailored for programmers at all stages of the AI learning curve.
Welcome to another collector’s edition from ProgrammingPro, this time on the use of AI in programming.
A recent study has found that Code-completion systems, such as GitHub Copilot, that offer suggestions within integrated development environments (IDEs) have become the primary form of support for programmers across skill levels.
With the rise of large language models (LLMs), we may well be moving into a future where traditional coding will become less prevalent and the conventional paradigms of software engineering may need to be rethought. Software development professionals will need to learn how to work in partnership with AI using the pair programming model and gain deeper knowledge about AI friendly languages such as Python, C++, R, Java, JavaScript, and Juilia.
Simultaneously, programming languages themselves are undergoing transformations to better integrate with AI technologies. For example, Mojo, a new programming language developed by Chris Lattner, retains Python's syntax but is engineered to run up to 35,000 times faster, particularly excelling in AI applications like matrix multiplications on GPUs. Azul CEO Scott Sellers predicts a bright future for Java in AI, highlighting its potential to match Python's dominance due to its suitability for large-scale applications and improved features like the new Foreign Function and Memory API. We also discussed AI related developments within the Rust ecosystem in our previous collector’s edition.
Having said all that, it is absolutely vital to recognize the pitfalls of overeliance on Code Completion Assistants and Code Generation Tools: quality and reliability issues, security concerns, ethical and legal Implications, maintainability, and long term validity.
In today’s issue, we will review the most prominent AI assistance tools available to programmers and understand the legal requirements for AI use within software development. We will follow that with an interview with Smita Samantaray, Senior Data Scientist at Digital.ai, where she shares best practices from her experience. We wrap up with a review of AI ready languages and a curated list of learning resources. But you will find even more gems hidden throughout this issue.
We really enjoyed making this for you and would love to hear what you think. Do reply to this email or fill out this short survey once you finish reading, to let me know what you thought of this issue and what language or concept you would like us to tackle next.
Stay Awesome
Divya Anne Selvaraj
Editor-in-Chief
🛠️AI Programming Tools⚒️
In the May 2024 Stack Overflow pulse survey, over 1,700 participants picked their most preffered code assistant tool to use professionally. Here are the results:
Let’s briefly get to know the top 10 minus 1 (OpenAI Codex which was depricated). Each overview is followed by a deep dive link with will take you to an article or documentation page that comprehensively explains the tool’s features and demontrates how to get the best out of it. Let’s get to it.
🛠️Open AI ChatGPT: A generative AI-powered conversational assistant that assists with tasks such as generating code snippets, debugging, and explaining complex concepts. ChatGPT 4o, the latest model, offers enhanced natural language understanding, superior contextual awareness, and advanced integration features. The model can maintain context over longer interactions, making it ideal for extended debugging sessions and detailed technical support. The free tier gives you access to GPT 3.5 and limited access to GPT 4o. Above that, prices go upward from $20/month, depending on whether you are a Plus, Team, or Enterprise user. Deep Dive.
🛠️GitHub Copilot: The most popular and widely adopted AI-powered code generator that assists with various coding tasks, including code generation, suggesting entire functions, and generating documentation. While initially launched for Visual Studio Code, it now supports multiple editors such as Visual Studio (IDE), JetBrains IDEs (IntelliJ IDEA, PyCharm, WebStorm), and Neovim. Originally based on OpenAI's Codex model, it provides intelligent, context-aware code suggestions. GitHub Copilot is free for verified students, teachers, and for maintainers of popular open-source projects on GitHub, offers a 30-day free trial, and subscriptions range between $10/month - $39/month. Deep Dive.
🛠️Microsoft Visual Studio Intellicode: Integrated into Visual Studio by default, it predicts relevant methods and properties, offering whole-line completions based on the current code context. IntelliCode also provides argument completion, suggesting the most likely arguments when calling a method. It tracks edits locally to identify repetitive actions and suggest similar edits. Supporting multiple languages, IntelliCode's suggestions, derived from highly rated open-source projects, aim to present the most relevant API calls. For Visual Studio and VS Code users Intellicode is free. If you're a C++ programmer and have a GitHub Copilot subscription, you can take advantage of both tools together to enhance code comprehension and completion. Deep Dive.
🛠️Codeium: Codeium is an advanced AI code assistant designed to enhance developer productivity through context-aware code completions and intelligent suggestions. Its new Hybrid deployment method blends the benefits of Self-hosted and SaaS, maintaining code data on the company's servers while utilising Codeium's powerful GPUs for computations, ensuring zero-data retention. This eliminates costly GPU management and provides access to advanced features like remote indexing and multi-repo context awareness. Individual plans come free with essential features. Prices start at $15/per seat/month for Team and Enterprise with comprehensive security and support features. Deep Dive.
🛠️Google Gemini Code Assist: Designed to accelerate software development with generative AI assistance, this tool provides enterprise-level security and privacy protection. It offers features such as auto code completion, code generation, and natural language chat across multiple IDEs including Visual Studio Code and JetBrains IDEs, supporting over 20 programming languages. Key features include customizable code assistance with private codebases, full codebase awareness for large-scale code transformations, and AI-powered smart actions for tasks like test generation and code explanation. Enterprises can leverage Gemini Code Assist to tailor recommendations based on their specific codebases, enhancing productivity and reducing context-switching. It supports applications in Apigee API Management and Application Integration, allowing for API building and automation without specialized expertise. Available to use for free until November 8th, 2024, pricing is set at $19/user/month with an upfront annual commitment. Deep Dive.
🛠️Tabnine: An AI-driven code completion tool that enhances programming efficiency by providing intelligent code suggestions across multiple languages and IDEs. Originally designed to support major editors like Visual Studio Code, IntelliJ, and Sublime Text, Tabnine utilizes ML models to offer context-aware completions, learning from the user's codebase and millions of open-source projects. Its capabilities extend beyond simple autocompletion, enabling developers to write cleaner code faster and with fewer errors. Tabnine’s basic tier is free for everyone. It offers a 90 day free trial for its pro tier which is priced at $12/month. Its enterprise tier is priced at $39/month. Deep Dive.
🛠️Cody: An AI coding assistant that uses your codebase for enhanced context. It allows code ingestion from any host and supports the latest AI models for tailored coding suggestions. Cody integrates seamlessly with IDEs like VS Code and IntelliJ, optimizing code suggestions across various programming languages and configurations. Cody offers a free basic service, with advanced features available starting from $9/month for professional developers and up to $19/month for enterprise solutions. Deep Dive.
🛠️Amazon Q Developer: Amazon’s generative AI-powered conversational assistant helps developers manage AWS services, research best practices, troubleshoot, and resolve errors. Key capabilities include natural language resource management, cost analysis, and generating AWS CLI commands. Its IDE extension for Visual Studio Code and JetBrains automates upgrading Java applications from versions 8 and 11 to 17, identifying deprecated code and updating dependencies. Amazon Q Developer also integrates all features of CodeWhisperer, adding functionalities like chatting about resources and costs, diagnosing console errors, transforming code, and developing software. Pricing includes a free basic tier and a pro tier at $19/month. Deep Dive.
🛠️Replit AI: An AI coding assistant that automates repetitive coding tasks and offers contextual assistance tailored to your project's codebase. It enhances productivity by turning natural language into code, supporting collaboration, and improving clarity in unfamiliar codebases. Replit AI rivals GitHub Copilot by focusing on personalized, project-specific coding suggestions. Starter plans are free, ideal for beginners, while the Replit Core plan costs $10/month, offering unlimited AI responses and a more powerful workspace. Team and Enterprise plans with additional features and support will soon offer annual and custom pricing options, respectively. Deep Dive.
With so many options to build with and integrate AI into software, internal and external safegaurds to ensure supply chain security are essential. Let us look at what frameworks and guidelines exist in the global tech environment today towards safer AI adoption.
🏛️Getting on the Right Side of the Law with AI Assited Development⚖️
The results of McKinsey & Company’s 2024 survey show that origanizational AI adoption worldwide has jumped to 72% from 20% in 2017 as shown in the following figure.
With surging adoption rates and every bit of software imaginable being tagged as AI enhanced, Governments are scrambling to formulate policy to keep up with and secure critical infrastructure from all the threats of insecure AI integration.
But what implications does current policy regarding AI have on your work?
In the United States
In line with the 2023-2024 CISA Roadmap for Artificial Intelligence, the Department of Homeland Security's safety guidelines, and Biden’s Executive Order on Safe, Secure, and Trustworthy Development and Use of AI, software developers are tasked with implementing secure AI systems across various sectors.
Essential Practices:
Robust secure software development lifecycle (SDLC): Developers must integrate security evaluations consistently throughout the AI development lifecycle. This includes following the updated Secure Software Development Framework, which now extends to generative AI and dual-use foundation models, as highlighted in the Executive Order. How to to adopt SDLC methodologies?
Ethical AI Deployment: Upholding equity, civil rights, and avoiding bias is paramount. Developers are required to ensure that AI systems comply with ethical guidelines and federal standards, promoting fairness and transparency. Here is a Comprehensive Guide on Ethical Considerations in AI Software Development.
Continuous Risk Assessment and Red Teaming: Adhering to the Executive Order's mandates, developers should conduct ongoing risk assessments and engage in red teaming to evaluate AI systems' resilience and security, ensuring they are robust against potential misuses. How to Red Team with LLMs?
Collaboration and Education:
Skill Advancement: Developers are encouraged to continually enhance their AI and cybersecurity expertise through updated educational programs and industry certifications. HarvardX: CS50's Introduction to Artificial Intelligence with Python, edX: AI Applications and Prompt Engineering, Google: Google AI for JavaScript developers with TensorFlow.js, and IBM: Python for AI & Development Project are free to enroll, self-paced courses, and good places to start.
Industry Collaboration: Engagement with cross-sector partners is crucial for aligning with the latest AI security practices and contributing to evolving security standards. How is AI supercharging collaboration between developers and business users?
In the European Union
In March 2024, the Parliament adopted the Articficial Intelligence Act, the world’s first comprehensive AI law to regulate the use of AI in the EU. Through the act, the EU has established a legal framework to harmonize the development, deployment, and usage of AI systems across its member states. The legislation categorizes AI systems based on the level of risk they pose, from unacceptable risks warranting prohibition to high-risk applications with stringent compliance requirements.
Essential Practices:
Compliance with Risk Categories: Developers must understand where their AI systems fall within the EU's risk categories to comply with the specific regulations—ranging from strict controls for high-risk applications to minimal requirements for low-risk AI. Learn how is risk classified and use this self-assessment tool to learn whether your work is affected by the AI Act.
Adherence to Technical Standards: For high-risk AI systems, adherence to harmonized technical standards is crucial. These include requirements for data governance, technical robustness, and cybersecurity. Following the political agreement on the EU’s AI Act, the International Standards Organisation (ISO) published the world’s first standard on AI management systems, ISO/IEC 42001_2023 – Artificial Intelligence – Management System (ISO/IEC 42001), on 18 December 2023.
Transparency and Information Duties: Ensure transparency in AI operations, especially for AI systems that interact with humans or generate content, to mitigate risks of deception. What do transparency obligations under the EU AI Act mean for AI systems?
Ethical AI Development: Align AI system development with EU principles on non-discrimination, data protection, and privacy rights as enshrined in the EU Charter of Fundamental Rights.
Continuous Monitoring and Updates: Developers must implement mechanisms for ongoing monitoring and updates post-deployment to adapt to new risks and maintain compliance with evolving standards. The European Data Protection Board (EDPB) has published a checklist for AI Auditing to comply with recent regulations.
Non-Government and International Efforts
World Economic Forum’s AI Governance Alliance: In June 2023, the World Economic Forum launched the AI Governance Alliance. Initiated by the World Economic Forum's Centre for the Fourth Industrial Revolution, the alliance is a collaboration of over 300 leaders from various sectors, aiming to establish transparent, inclusive, and ethically sound AI governance standards. The alliance seeks to harmonize AI advancements with societal benefits through effective governance frameworks, ensuring AI safety and fostering innovation. In January 2024, it published the AI Governance Alliance Briefing Paper Series focused on three areas—Safe Systems and Technologies, Responsible Applications and Transformation, and Resilient Governance and Regulation.
GenAI Governance: Just last month, Over 1,000 business leaders, including those from Boomi and Connor Group, along with academics like David Wood, Scott Emett, and Marc Eulerich, came together to develop the Enterprise GenAI Governance Framework. This framework is aimed at assisting businesses in evaluating AI readiness, identifying risks, and adopting generative AI responsibly.
For information on what is happening in terms of regulation in other parts of the world, take a look at Fairly AI’s map to track AI regulations across the world (including Data and Privacy regulations impacting AI.)
With all the information that is out there on how to integrate AI the right way into organizational systems, functions, and products, software developers need to get to grips with the changing landscape, and fast. So, here is some much needed wisdom from someone who has been there and done that.
🧠Practical Wisdom for AI Programmers: An In-Depth Conversation with Smita Samantaray🏔️
I had the unique opportunity to sit down with SmitaSamantaray, a Programmer, Data Scientist, and AI/MLpractitioner with 15+ years of industry experience. We spoke about how she started on her AI journey and made the shift from software engineering to working with AI/ML solutions. We also discussed what she has learned along the way which she would like to share with programmers exploring the possibilitiesof AI. As if that were not enough, Smita was an absolute gem and shared a hoard of learning resources with us which I am sure you will find very useful. Here is how the conversation went.
Q: Can you tell us about your current role and how you're using AI to enhance productivity in software development and agile systems?
A: As a senior data scientist at Digital.ai, I specialize in AI/ML initiatives to enhance software development and agile systems productivity. Digital.ai focuses on value stream management, DevOps, and Agile practices for optimized software delivery.
Some predictive analytics solutions I worked on include Change Risk Prediction, Feature Cycle Prediction, Major Incident Prediction. Additionally, we've developed practical AI applications like a generic chatbot and a recommender system for internal use. The chatbot employs NLP to handle user queries efficiently, while the recommender system enhances decision-making by suggesting relevant resources. These AI/ML solutions are integrated into Digital.ai's platform, empowering organizations to navigate complexities, optimize workflows, and deliver software efficiently.
My role focuses on applying advanced data science to innovate and support our mission of enabling businesses in their digital transformation journey.
Q: Reflecting on your transition from software engineering to specializing in AI/ML data science, what resources or methods were most effective? Could you also recommend specific courses or books that were particularly helpful?
A: Before taking on my current role as Data Scientist, I presented several ideas at events within the organization, such as hackathons and learning sessions, to showcase AI/ML applications that could enhance our product offerings. These demos were well-received, and as a result, I was offered a Data Scientist role within the organization. The role leans heavily towards ML engineering, focusing on the production-scale implementation of AI/ML features. My previous experience as asoftware engineer has been particularly beneficial in this role.
Key resources that facilitated this transition for me included a comprehensive courses on Coursera now called Machine Learning Specialization led by Andrew Ng’s and his Deep Learning.AI platform, which cater to both beginners and those seeking deeper specialization in ML.
Books including, Introduction to Linear Algebra by Gilbert Strang provided a solid mathematics foundation. Designing Machine Learning Systems by Chip Huyen was instrumental in providing insights into applying AI/ML solutions in production. YouTube channels like 3Blue1Brown and StatQuest with Josh Starmer were also invaluable for demystifying complex concepts such as Bayesian statistics and dimensional reduction.
Some other courses I would highly recommend for beginners from DeepLearning.AI would be:
For those interested in GenAI and LLM, some short courses you could take include:
To gain hands-on skills:
Practice programming on LeetCode / HackerRank
Go through the AI/ML coding examples and tutorials at Machine Learning Mastery
Explore TensorFlow 2 quickstart for beginners for implementing deep learning models. You can also practice what you learn on Collab or Kaggle.
Finally, I recommend subscribing to The ML Ops blog, Towards Data Science, and the AWS Architecture Blog.
Q: Thank you for these recommendations! When you transitioned into the AI/ML sphere, did you need to learn a new programming language?
A: Initially, my first choice, which probably applies to anyone starting in AI and ML, was Python, which has become synonymous with AI and ML development. I learnt Python on the job and practiced on LeetCode.
Previously, languages like R were favored for predictive analytics and advanced analytics solutions. However, if the focus extends beyond analytics to integrating AI as a service or building engineering pipelines, AI/ML cannot be decoupled from the engineering process. This is where Python is essential. Languages like Java and C++ are also gaining prominence in the ecosystem due to their performance efficiency and speed.
Q: When developing AI-enhanced software products, is it enough to know Python, or is it also useful to be proficient in other areas?
A: Python is fundamental, but understanding frameworks like TensorFlow and PyTorch is equally crucial. These are not just optional tools; they are essential for deep learning, allowing for a choice based on specific project needs—TensorFlow, for example, is well-supported by Google. It’s not solely about language proficiency but about mastering the frameworks to build robust AI solutions.
Q: What level of proficiency in these frameworks is necessary?
A: Proficiency demands a deep conceptual understanding of AI/ML architectures, such as convolutional neural network (CNNs) or recurrent neural networks (RNNs). It’s important to understand the nuances of different models and the reasons for preferring one over another. For those new to AI/ML, understanding the historical evolution of these technologies is crucial to appreciate the shift from traditional statistical models to contemporary deep learning techniques.
Q: Can you provide an example of how this knowledge is applied?
A: Consider neural networks: while powerful, the results they produce can be difficult to explain compared to more straightforward models like decision trees. The choice of model often depends on the need for explainability and the amount of data available. For instance, in B2B solutions where predicting change failures is crucial, customers often require clear explanations for the predictions, highlighting the importance of explainable AI.
Q: How does the choice of technology affect performance and outcomes?
A: The choice of technology significantly affects the efficiency and effectiveness of results delivery. In environments where personalization and recommendation are key, such as in video recommendations on platforms like YouTube, the speed of predictions is critical, and models must operate efficiently without detailed explanations. Conversely, in scenarios where decisions must be justified, such as in predictive analytics for businesses, the ability to explain AI decisions becomes paramount.
Q: Do you think foundational programming skills align with the skills needed in an AI/ML environment? Are there any specific skills that developers already possess which would serve them well if they transition into AI/ML engineering?
A: Absolutely, programming skills are crucial. AI/ML is not an isolated field; it involves projects to which perhaps 10 or 20 people might contribute. If I write code that isn’t easily understandable or maintainable by my peers or by another team wishing to adopt my solution, it won’t be effective. The programming guidelines and design principles used in software engineering, both at the low and high levels, are equally important for AI/ML. These skills remain relevant when transitioning from a non-AI/ML background.
In fact, the industry prefers individuals who can integrate these software engineering skills with AI/ML capabilities. It's about the experience and the capability to manage solutions that may be accessed concurrently by many users—sometimes 10 or even 100 users per second. People who possess a mix of skills are especially sought after as they can handle the complexity and scalability demands of modern AI solutions.
Q: What are common pitfalls or challenges that new AI engineers might encounter when starting an AI/ML project? How can they avoid these issues?
A: A significant part of an ML engineer's effort—about 80%—is spent on building pipelines and developing features, rather than just training models. The development lifecycle involves not only training the model but also understanding the data and creating a reproducible pipeline.These software engineering principles are time-consuming but crucial.
Often, AI/ML solutions are deployed unnecessarily, just for the allure of using advanced technology. A frequent oversight is the neglect of data quality used in training. If the data is biased or incorrect, it compromises the model's integrity. Ensuring data accuracy and employing ML Ops governance to maintain quality over time as data patterns evolve is vital.
Q: Can you expand on how these challenges align with frameworks like the CISA roadmap for AI security, which discusses continuous risk assessment and Red teaming?
A: Red teaming is akin to ethical hacking and is essential for assessing whether AI solutions, particularly language models, are robust against potential misuses. Tools like Giskard help evaluate if a language model’s responses are biased toward any demographic, based on how prompts are written. It's crucial because overly open-ended prompts could be misused, potentially leading to unethical responses or compromising the infrastructure. Ensuring the model's interaction with users is secure and prevents misuse is paramount.
Q: That's insightful, especially the emphasis on the necessity of governance and ethical considerations in AI deployment. Could you provide specific guidelines on what factors programmers should consider when evaluating new AI technologies? Particularly, how they should assess new AI models or frameworks before deciding to adopt them?
A: When assessing frameworks or models,it's crucial to review the benchmarks and publications that detail their performance. Most models, especially those accessible on platforms like HuggingFace, have their performance benchmarks published. These evaluations are usually conducted on standardized, curated datasets overseen by governance bodies.
Q: How does this information influence the selection process?
A: Each model includes a datasheet that lists how it has performed on these datasets. For instance, a model may excel in Q&A tasks but fall short in summarization. Hugging Face features a leaderboard that is updated weekly to display the top-performing models for various tasks.
Q: And how should one go about evaluating frameworks?
A: Evaluating frameworks can be more complex. For example, when foundational models like GPT began gaining traction, tools such as LangChain and LlamaIndex facilitated their integration into existing systems. For open-source frameworks, a good practice is to examine their GitHub repositories. Metrics such as Git ratings, forks, and stars can offer insights into the framework's popularity and community support. Additionally, the maturity of the documentation and the activity level of the forum are good indicators of the framework's reliability and user community engagement.
Q: Moving on, do you personally use any code assistance tools like Visual Studio IntelliCode or GitHubCopilot?
A: Yes, tools like GitHub Copilot can be integrated with various IDEs, including Visual Studio and PyCharm. I personally use PyCharm, and the functionality of Copilot remains consistent across different environments.
Q: Could you share your experienceswith these tools? What advantages and drawbacks have you noticed?
A: An IDE is crucial as it acts as your workstation. GitHub Copilot is still relatively new in our organization and is under review to assess its effectiveness. It’s important to have a feedback mechanism to evaluate how well it integrates into our coding processes. However, its utility might not be universal across every team, especially if there are significant variations in coding practices.
Q: Given that AI/ML is rapidly evolving, how do you keep your skills up to date and stay informed about the latest technological advancements and ensure you follow best practices accurately?
A: Most of my learning comes from the challenges we encounter at work, which require us to refine our models and explanations continuously. Additionally, I regularly read articles on platforms like Medium, focusing on data science and AI, to stay abreast of industry developments. We also use AWS for our infrastructure, which offers a wealth of resources including architecture blogs and forums.
Q: Are there any other case studies from the industry that you find inspiring or would recommend to those new to AI/ML?
A: Companies like Netflix and Uber publish comprehensive case studies on their engineering challenges, especially in areas like recommendation systems and navigation solutions. ML system design: 450 case studies to learn from is also a rich resource. The Netflix Prize, for example, is a classic case that significantly advanced recommendation systems through community involvement.
Q: Before you go, if there was one piece of advice you would like to give programmers just starting to explore AI, what would it be?
A: I would advise embracing the learning process. AI is complex and constantly evolving. The field is challenging yet rewarding, and there’s no shortcut to success. It requires dedication and a genuine passion for solving complex problems.
Thank you Smita for this enlightening conversation.
Let us now move on to learn about where programming languages and frameworks lie in terms of AI and developer friendliness and how to choose the right one for your needs.
🏋️♀️Programming Languages and Framworks for AI Development🤸♂️
For programming professionals in the post AI world, getting up to speed with languages and frameworks that are AI ready has become essential. Here are some languages that have made the cut and would be worth exploring on your AI programming journey.
Languages
🏋️♀️Python: Excels in AI and ML due to its intuitive nature, extensive libraries like Scikit-learn, Pandas, and TensorFlow, and flexibility, promoting rapid development and deployment. Its readability and community support make it ideal for cross-platform AI solutions. AI with Python Tutorial.
🏋️♀️C++: Enhances AI/ML with high performance, scalability, and efficiency. It supports a range of ML algorithms and large-scale systems, complemented by libraries such as TensorFlow, OpenCV, and Dlib for advanced AI tasks. Integrates with Python for increased flexibility. AI with C++ Tutorial.
🏋️♀️R: Known for its statistical strength and data analysis capabilities, R is suited for AI applications like predictive modeling and deep learning. It offers robust data handling tools and supports various AI tasks with packages like C50 for decision trees, e1071 for naive Bayes, and neuralnet for deep learning. AI with R Tutorial.
🏋️♀️Java: Popular in AI for its object-orientation, scalability, and vast libraries. It supports diverse AI applications, from neural networks to machine learning, with tools like JOONE and WEKA. Java's cross-platform nature ensures it meets business demands for versatile AI solutions. AI with Java Tutorial.
🏋️♀️JavaScript: Ideal for AI on multiple devices, supporting responsive web designs and edge computing. Integrates with cloud APIs and includes libraries like Transformers.js for enhanced AI functionalities, making it suitable for complex, AI-driven applications. AI with JavaScript Tutorial. AI with JavaScript Tutorial.
🏋️♀️Julia: Stands out in AI for its high-performance computing and compatibility with other languages. It excels in numerical computing and is a speedy alternative to Python, featuring an easy syntax and efficient low-level computation. AI with Julia Tutorial.
Frameworks
Here are a few resources to help guide you on your selection of AI frameworks for your projects:
🏋️♀️Top 20 AI Development Frameworks & Libraries in 2024: Reviews key AI frameworks and libraries essential for modern software development including TensorFlow, PyTorch, OpenAI, Scikit-Learn, Hugging Face, and Keras.
🏋️♀️Choosing the Best AI Model Frameworks for Your Projects: Guides you on selecting effective AI tools and frameworks for project-specific needs, focusing on their strengths, limitations, and the importance of factors like scalability, flexibility, and community support in influencing project success.
📚 Reading List 📖
Here is a list of open access books and courses on AI and some articles worth reading.
Books
📑State of Open Source AI Book - 2023 Edition by the Open Source AI community: A comprehensive guide to the latest developments in open source AI, including model evaluations, deployment strategies, and a glossary of new frameworks and tools.
📑Dive into Deep Learning by Aston Zhang, Zachary C. Lipton, Mu Li, and Alexander J. Smola: An interactive deep learning guide featuring code, math, and discussions, implemented with PyTorch, NumPy/MXNet, JAX, and TensorFlow.
📑Python Data Science Handbook by Jake Vanderplas: a comprehensive guide accessible via Jupyter notebooks on GitHub, covering IPython, NumPy, Pandas, Matplotlib, and machine learning with Scikit-Learn.
For more books, please visit Free eBooks on Artificial Intelligence to read in 2024.
Courses
We have already listed some great courses earlier in this newsletter, but here are a few more.
🎓Gemini API by Google: Teaches how to utilize Google's Gemini API and AI Studio for embedding generative AI into various applications. Also covers core API uses, different prompting techniques, and practical skills for integrating AI into web and mobile platforms.
🎓Using GenAI to Automate Software Development Tasks: Covers AI pair programming, prompt engineering, and MLOps best practices for Rust and Python, utilizing tools like AWS Code Catalyst and SageMaker. Designed for developers at all levels.
🎓Learn How to Use AI for Coding: A one hour, beginner level course which will teach you how to generate code snippets, including Bash commands and database queries, and gain skills in refactoring and testing code for quality and reliability.
Articles
📜From diagrams to design - How AI transforms system design: Discusses how AI is reshaping software system design beyond mere diagramming, emphasizing AI’s role in enhancing decision-making, automating documentation, and optimizing system performance.
📜Using PostgresML with Django and embedding search: Describes integrating ML into applications using only SQL for embedding vectors, allowing complex search functionalities like semantic meaning extraction without in-depth ML expertise.
📜LLM Critics Help Catch LLM Bugs: Explores the use of critic models like CriticGPT, which are LLMs trained through Reinforcement Learning from Human Feedback (RLHF). These critic models can outperform human critiques in 63% of cases and identify numerous errors in ChatGPT training data previously rated as flawless.
📙From the House of Packt🧨
Last but not the least, here are some titles from Packt to get you started on your journey of becoming an AI engineer.
📙Machine Learning with PyTorch and Scikit-Learn by Sebastian Raschka, Yuxi Liu, and Vahid Mirjalili: Learn how to develop machine learning and deep learning models with Python.
📙Building LLM Powered Applications by Valentina Alto: Learn how to create intelligent apps and agents with LLMs.
📙Transformers for Natural Language Processing and Computer Vision - Third Edition by Denis Rothman: Explore Generative AI and Large Language Models with Hugging Face, ChatGPT, GPT-4V, and DALL-E 3.
📙Google Machine Learning and Generative AI for Solutions Architects by Kieran Kavanagh: Learn how to build efficient and scalable AI/ML solutions on Google Cloud.
📙Building Data-Driven Applications with LlamaIndex by Andrei Gheorghiu: A practical guide to retrieval-augmented generation (RAG) to enhance LLM applications.
That’s all for today. We hope you enjoyed this special issue.
We have an entire range of newsletters with focused content for tech pros. Subscribe to the ones you find the most useful here. Complete ProgrammingPro archives can be found here. Complete PythonPro archives are here.
If your company is interested in reaching an audience of developers, software engineers, and tech decision makers, you may want to advertise with us.
If you have any comments or feedback, take the survey, or leave a comment below.