top of page
Writer's pictureBy Alexander Batenhorst

Updated: May 28, 2023

• SDK • Scaffolding

If you are interested in becoming a software developer, one of the first decisions you need to make is which programming language to learn. There are many factors that can influence your choices, such as your personal preference, your career goals, and the availability of resources and mentors. In this article, I will share some tips on how to pick a programming language that suits your needs and aspirations.


Pick one code based on local geographics. Depending on where you live and work, some programming languages may be more popular and in demand than others. For example, C# is popular in the Omaha metro area in Nebraska. Although C# was my primary focus, I stuck with JavaScript since it was the first language I used when first learning how to develop over three years ago.


Find a Tech Mentor


Next, find a tech mentor that’s either been a software developer or is some kind of information technology professional. Learning a new skill can be challenging and frustrating, especially if you don't have anyone to guide you and answer your questions. A tech mentor can help you overcome obstacles, provide feedback, and motivate you to keep going.


IT professionals with over a decade of experience usually have enough coding background to point you in the right direction during the early learning process. Using an IT professional instead of developer was helpful making the decision to go into software development because at the time there were zero programmers in my old community in rural Nebraska.


Embrace Diversity


I was excited to find different cultures within the tech community. These individuals from a different cultural background single-handedly impacted my early tech career path. They were the best mentors early-on in the process.


Diversity can enrich your learning experience and expose you to different perspectives and approaches. You can also benefit from the support and encouragement of people who share your different diverse background and identity and work in technology. But much can be gained by embracing different cultures than your own—depolarization.


Community


Find resources and communities to support your learning. There are many online and offline resources that can help you learn a programming language, such as books, courses, tutorials, blogs, podcasts, and videos. As discussed in previous blog posts, immersion in programing via different medias support the lower level of Bloom’s taxonomy. Immersion is what helps you “remember” and start nailing down the schema of software development required to begin the early learning process. But don’t forget to use other in-person resources.


One resource in Omaha Nebraska is the Dotnet meetups. I believe they have been around for over two decades. Their mission, pulled from their website, is to facilitate a discussion environment for .NET developers and IT professionals focused on building real-world solutions using the Microsoft .NET platform. You can also join them online for hybrid in-person and online tech presentations if you don’t live around the area. Be sure to check via your favorite search engine, the local resources available in your area. These can be forums, chat groups, social media platforms, or events where you can network, exchange ideas, and collaborate on projects.


Stick to One Language


Stick to one language during the first year of the code learning process: I cannot emphasis this enough. This was the best advice I have gotten from my early tech mentors before switching careers. Learning a programming language can be overwhelming at first, as you need to master it’s syntax, logic, and features. If you try to learn multiple languages at once, you may end up confusing yourself and losing focus. It is better to stick to one language until you feel confident and comfortable with it before moving onto another one.


Often, I wanted to learn the next best popular code. However, I remember one of my tech mentors slapping me on the hand and telling me to stop thinking about other programing languages. He gave this advice to stick to one language, no matter what, in a stern manner. The way a big brother talks to his little brother—with great sincerity.


Conclusion


I hope these tips will help you choose a programming language that fits your needs and aspirations. You may also benefit, like I did, from having a mentor from another culture. Remember that there is no one right answer for everyone, and that you can always change your mind later if you find a different language more appealing or suitable for your goals. If you are within your first year of learning code, stick with only one language that’s most popular in your area.


Sources as of 5/20/2023

Omaha Dotnet Meetup (n.d.). About Us.

Writer's pictureBy Alexander Batenhorst

• SDK • Scaffolding


If you are new to software development, you might have heard of CRUD operations and wondered what they are and why they are important. In this blog post, we will explain what CRUD operations are, how you can practice with a CRUD template, and how they can teach you the concept of encapsulation. Learning CRUD is a great way to scaffold your knowledge from easier steps involving coding in Visual Studio to more difficult operations.


How Can CRUD Operations Scaffold Your knowledge?


Encapsulation is one of the fundamental principles of object-oriented programming. It means that data and methods that operate on that data are bundled together in a single unit called an object (Stackify, 2023). Encapsulation helps to hide the complexity and details of how an object works from the outside world and only expose what is necessary for interaction. For example, when you use a CRUD template, you don't need to know how the database connection is established or how the SQL queries are executed.


You only need to know how to use the methods that perform CRUD operations on the data. And once you start getting the hang of it, you can really start scaling up your program. That is why learning CRUD operations are a great opportunity to learn coding on the lower level of Bloom's taxonomy (freeCodeCamp.org, 2023). That is as long as you remember to start small.


What are CRUD Operations?


CRUD stands for Create, Read, Update, and Delete. These are the four basic operations that we perform. CRUD is also data-oriented and the standardized use of HTTP methods. For example, when you create an account on a website, you are performing a CRUD operation. You are creating a new record in the database with your personal information. When you log in to your account, you are reading the data from the database. When you edit your profile or change your password, you are updating the data in the database. When you delete your account, you are deleting the data from the database. See a trend?

CRUD example repo link:


Please open via iOS/WIN web browser, for best results of the example below:

In the above example of CRUD, notice that each letter (e.g. “D” for delete) represents a CRUD operation. Initializing the CRUD operation in loops allows you to create an interface for a user. Once the interface is created, you can start building out your CRUD operation by creating, deleting, and/or updating data.


Search the Web for Resources


There are tons of free resources out there to learn CRUD. All you need to do is set up Visual Studio which is free for learning purposes and start searching YouTube. When building your CRUD program, try to focus not only on one programing language but on one CRUD operation. Start with “Create” which is the easiest CRUD operation. “Create” involves the fewest steps when coding in C#. As soon as you create an array, you will find it easy to “read” data in your program. You will find that as you move down the letters, the CRUD operations get harder—start small.


Scaffolding is a learning technique that involves providing support and guidance to learners as they progress from easier to more difficult tasks (Educative, 2023). Scaffolding helps learners to build their confidence and competence by breaking down complex problems into manageable steps. For example, when you learn CRUD operations with Visual Studio, you can start with simple tasks such as creating a program to add a data source and generating a data model (iteration loop). Then you can move on to more challenging tasks such as creating controllers, views, and routes for performing CRUD operations on the data.


Reflection


I personally have found practicing and creating a CRUD application to be the most frustrating yet rewarding process of learning software developent. The process felt impossible until you figure out the patterns to move onto other CRUD operations. And it was frustrating because I had a difficult time, initially, learning how to build the "delete" operations. It was rewarding because once I figured out some of the CRUD operations, my program took off. I could create an exciting UI on my console program too. And I could begin the process of scaling up software by carefully planning prior to coding using mapping software–Microsoft Viso™.


Conclusion


CRUD operations are essential for web development as they allow us to manipulate data in persistent storage. By learning CRUD operations with a CRUD template and Visual Studio, we can practice our coding skills, learn the concept of encapsulation, and scaffold our knowledge from easier steps. By understanding CRUD operations and APIs, developers can build powerful web applications that can store and retrieve data from databases quickly and easily. And learning CRUD is a great opportunity to learn coding on the lower level of Bloom's taxonomy, which is the cognitive process of remembering facts and concepts.


Sources as of: 5/13/2023

Stackify. (2023). What are CRUD Operations? Examples, Tutorials & More. Retrieved from https://stackify.com/what-are-crud-operations/

Educative. (2023). CRUD operations explained: Create, read, update, and delete. Retrieved from https://www.educative.io/blog/crud-operations

freeCodeCamp.org. (2023). CRUD Operations – What is CRUD? Retrieved from https://www.freecodecamp.org/news/crud-operations-explained/.

Writer's pictureBy Alexander Batenhorst

SDK • Scaffolding


If you are a software developer or aspiring to become one, you might have heard of Bloom’s taxonomy. It is a framework that classifies different levels of cognitive skills, from lower-order to higher-order thinking. Bloom’s taxonomy can help you improve your learning process and achieve your goals more effectively.


Bloom's Taxonomy Consists of Six Levels:


Each level requires a different type of mental activity and builds on the previous ones. Here is a brief overview of what each level entails:

  • Remember: this is the basic level of learning, where you can recall facts and information. For example, you can remember the syntax and keywords of a programming language, or the names of common data structures and algorithms.

  • Understand: this is the level where you can explain the meaning and purpose of what you learned. For example, you can understand how a loop works, or what a function does.

  • Apply: this is the level where you can use what you learned in new situations or contexts. For example, you can apply a sorting algorithm to sort a list of numbers, or use a loop to iterate over an array

  • Analyze: this is the level where you can break down what you learned into smaller parts and examine how they relate to each other. For example, you can analyze the structure and logic of a program, or the advantages and disadvantages of different data structures.

  • Evaluate: this is the level where you can judge the quality and effectiveness of what you learned based on criteria and standards. For example, you can evaluate the performance and efficiency of a program, or the suitability and reliability of a data structure.

  • Create: this is the highest level of learning, where you can synthesize what you learned into something new and original. For example, you can create a new program that solves a problem, or a new data structure that meets your needs.

How Can You Use Bloom's Taxonomy to Learn Software Development?


Here are some tips:

  • Start with the lower levels and work your way up. Don’t try to jump to the higher levels without mastering the basics first. For example, before you create your own program, make sure you understand the syntax and logic of the programming language you are using.

  • Use different resources and methods to learn at each level. For example, you can use books, videos, tutorials, online courses, blogs, podcasts, etc. to learn new concepts and facts. You can use exercises, quizzes, projects, etc. to practice applying and analyzing what you learned. You can use feedback, reviews, tests, etc. to evaluate your work and improve it. You can use tools, frameworks, libraries, etc. to create your own products and solutions.

  • Challenge yourself to move up the levels as you progress. Don’t settle for just remembering or understanding what you learned. Try to apply it in different ways, analyze it from different perspectives, evaluate it against different criteria, and create something new out of it—create.

The learning path of software development and Bloom’s taxonomy is not a rigid or linear model. You can move back and forth between the levels as needed. You can also combine different levels in your learning activities. The software you build doesn’t always have to solve a problem.


Start Building Software Programs


Some good layering examples where you can build high quality software but at a lower level in blooms include things you might enjoy like:

  • a “hello world” program

  • Addition and subtraction of numbers (integers, iteration, etc.)

  • a CRUD program (create, read, update, and delete)

  • a loyalty points program for a supermarket (member names, addresses, id’s, etc.)

  • a Blu-ray collection organizer (titles, year, format, etc.)

You can start with a simple program and work your way up in complexity. For example, you can create a program that applies an algorithm while analyzing its performance. And then when you are ready, build one of your favorite programs. Perhaps something like for a media collection or ATM model banking program. These examples could use the CRUD operations, and you could start easy with the "read" portion working your way to "delete." "read," for example is the part of the software that prints the data on the console—akin to a "Hello world" program. By building lower-level high quality software, you can participate in basic concepts of software development. This allows you to move up the Bloom’s pyramid of knowledge.


The whole idea of using Blooms is to get your hands wet with some basic software development fundamentals. The key to Bloom’s taxonomy is stacking knowledge in order to not to overwhelm the learner. Building small higher quality software is the proverbial laying of the cement foundation of knowledge. The best advice I was given by senior level developers and programs (bootcamps) I’ve participated in are to build software you love. So I built a media collection piece of software to organize my personal collection of physical discs—using CRUD starting with "read."


The higher you move up the Blooms, the more you are able to “evaluate” and “judge.” All of which are only accomplished once you achieve a higher level of understanding—Blooms. And by starting with “remember,” which is the memorization piece, you can begin your software development learning journey. These are all key fundamentals of the learning process every brain goes through that I learned during my undergraduate program as a former educator. The same can be applied toward software development.


Bloom’s taxonomy is a useful tool that can help you structure your learning process and enhance your cognitive skills as a software developer. By using it wisely, you can become a more effective and efficient learner. And more importantly, without overwhelming the learner. Blooms is comprised of six layers starting from “remember,” the lowest level to the highest level of “create.”


In a future blog post, I will demonstrate the first three lower levels of Blooms. I will provide an in-dept example of how we can gain knowledge by using an SDK approaching bottom levels of Bloom's.

References:

  • Reha, M. K. (2019, September 20). How to teach software development using Bloom’s taxonomy. Grand Canyon University. https://www.gcu.edu/blog/engineering-technology/how-teach-software-development-using-blooms-taxonomy

  • Armstrong, P. (2010). Bloom’s taxonomy. Vanderbilt University Center for Teaching. https://cft.vanderbilt.edu/guides-sub-pages/blooms-taxonomy/

  • Goel, S. (2010, July 29). Bloom’s taxonomy wrt software development education. https://goelsan.wordpress.com/2010/07/29/blooms-taxonomy-wrt-software-development-education/

  • Silva, J., Plakidas, K., & Eckhardt, J. (2015). Bloom’s taxonomy in software engineering education: A systematic mapping study. In 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering (Vol. 2, pp. 609-612). IEEE.

  • Khan, S., & Khan, R. A. (2018). A systematic review of the use of Bloom’s taxonomy in computer science education. In Proceedings of the Future Technologies Conference (FTC) 2018 (pp. 1156-1171). Springer.

bottom of page