#Java Basic Concepts
Explore tagged Tumblr posts
Text
also i might need to learn some rust to prepare myself for the insane task on writing a linux-like os kernel in rust + x86 assembly that will be forced upon me during the next term. which means that i have to learn both cpp and rust kind of simultaneously? hate when this happens
#i have superficial familiarity with cpp (i know basic c + i wrote algos in cpp)#and i know enough about like oop from other languages (mainly java unfortunately)#but i have no idea how the specifics of cpp work.....#oh did i say i know basic c? sorry i mean i know c pretty well actuallt#i still have no idea what the fuck is a template. is it like a generic? no idea#i have a vague understanding of a concept of a namespace
1 note
·
View note
Text
OOPS NOTES
OOPS NOTES
View On WordPress
0 notes
Text
Are you interested in contributing to the largest Minecraft prehistoric life mod?
PN is looking for new devs! Anyone with experience modeling, texturing or animating in BlockBench is wanted, as well as anyone with experience in Java coding, sound design, or writing/editing.
If you are interested, please join the Prehistoric Nature discord and dm the head developer, aecht_rob.
We would also appreciate if you shared this with anyone you think might be interested!
I have included Rob's more extensive description of available positions below, if you wish to know more details.
Modellers: anyone who can model creatures. We model using BlockBench. You would need to be able to do your own research about animal skeletal structure, and be flexible and responsive to criticism and accuracy advice. You would need to be able to follow the in-house style and patterns used by PN. We would prefer hugely that you could also texture models in the PN style. We provide in-house concept art for assistance.
Model animators: people who can produce animations inside of the BlockBench programme. We use these for mob movement, nesting, laying, eating, attacks, etc, as well as for whatever interesting spontaneous behaviours anyone wants to come up with. You need to be able to work under guidance about what is plausible and possible in terms of scientific knowledge. We provide internal advice about these matters. You would be liasing with our sound designers and modellers and palaeo-advisors.
Sound designers: people who can produce sounds for our creatures. Typically a set of several sound-variants is given for each creature, involving ambient, hurt and death; plus any extra sounds as needed by custom AI. You will need to look at models in BlockBench to understand timings of their animations, and should be familiar with the use of Audacity. We assist internally with access to resources and ideas and advice. You will need to be quite imaginative and resourceful and have a basic grasp of sound-editing.
Palaeopedia editors: this could be a range of different people, doing different parts: to act as the go-to person for the mod's Palaeopedia in terms of content. You would collate the entries, gather information from your own research and from the internal mod team discussions of each creature, and write, in good English, the Palaeopedia articles concisely and accurately; test formatting on the page in-game, and report issues like missing images and advancements; and so on. We will teach you how the relevant bits of code work to get these into the mod itself, and you should be happy that it is sometimes slightly technical. This might well extend to designing and setting poses for Taxidermy models too!
A java coder who knows modern Minecraft modding and modern Minecraft game mechanics: Someone who has written even basic java mods in modern Minecraft would be welcome to help and speed port things up (not MCreator). We're looking for someone flexible and able to work in a team and under guidance about code architecture and approaches: it's not a standalone role and is hoped to be collaborative. They should have worked with Minecraft java game code and (broadly) understand it.
46 notes
·
View notes
Text
youtube
Presumptions in Programming
This post reflects on what Dr. Kanojia said in his video about assumptions and communications. I am importing outside concepts into to computer science. As I understand it, efficient communication depends a lot on presumptions. When you communicate with someone you presume that person understands. The magic happens when those presumptions are valid.
His model of communication looks like the figure [exhibit 1A]. You have the speaker on the left. The listener on the right. The blue lane represents the full information we want to convey. The green lane represents the actual information transmitted. The orange lane represents the information presumed.
I would say that efficient communication depends a lot on the green lines to be as small as possible. This means that the orange lines will be larger. What this translates to is that the listener needs to be highly educated or trained.
The figure [exhibit 1B]. On the left is the programmer. On the right is the assembler. Assembly language is a 1 to 1 correlation of instruction to code. Therefore I made the green line is solid. There are no presumptions we can rely on, hence there is no orange line. Speaker does all the work.
The figure [exhibit 1C]. On the right is the compiler of a higher level language. Languages like Pascal, C, BASIC, JAVA, etc. Less information is transmitted in the green lane. There are presumptions made hence the orange lane contains information. Compiler does some of the work.
The figure [exhibit 1D]. Its the ideal situation. One instruction means a whole lot of work gets done. Like when the emperor issued order 66. That was the end of the Jedi. In computer programming this happens in function calls. One API call means a whole lot of work gets done.
In conclusion the job of a language is to be able to convey as much information as possible with the least amount of effort. This is called the “code expression” capacity of a language. Some people use the term “compressibility” of information in a language. UncleBob explains code expression using the LISP language. LISP is mostly parenthesis and commas. And you can do a lot with just parenthesis and commas. Hence its said LISP has a high amount of code expression. It can be argued thou that LISP programs can become long and cryptic. UncleBob likes the least amount of syntax. But sometimes the more syntax a language has, the more “compressibility” of information its capable of.
19 notes
·
View notes
Text
The Making of Derelict
I made a videogame!
So…
That’s pretty neat.
The original plan was to spend two weeks on the bulk of the work, then to spend two more weeks beta testing, polishing, and releasing.
It took me three months, which...well, oops. Regardless, I learned a lot along the way and I’m happy with the end result, so allow me to take you on a journey behind the scenes of Derelict: Deep Space Salvage.
All good games start with a concept, a central idea, a defining through-line upon which the whole of the experience is balanced. More 𝒸𝓇𝑒𝒶𝓉𝒾𝓋𝑒 developers usually don’t make that idea the title of their game, but I don’t want to be a creative developer, I want to be a good one.
In this case, I wanted to make a game about plundering the leftovers of those too stupid, or simply not fortunate enough, to survive the dangers of the infinite, starlit expanses.
Easy, just make it then, right?
Wrong! What do you think I am, a swiss army knife with legs? No, my friend, first thing’s first: skill set! What can I actually do on my own? If it wasn’t obvious, I’m a writer first and foremost (cough, ahem, cough). I can do a little programming too, a little java, a little C#, a little HTML.
Therefore my decision became simple as dirt: A text-adventure game needs no audio, minimal graphics, only basic programming, and a shitload of writing. (I used Twine, for those interested)
That’s not to say I haven’t considered adding some pizzazz. Some snappy ear-candy for when the player clicks a button might be nice, a little ethereal, industrial ambience could really sell the lost-in-space vibe, and I did whip up a sorta-lazy cover image, something to get the job done. Still, you have to choose your battles.
That’s actually the most important lesson, by the way. I ran two months overtime because I could afford to, and I focused on polishing the narrative experience because that was the heart of what makes Derelict fun. I even added achievements to the game…
…because that gives the player a good reason to play again and try to new things, to see more of the writing that I came up with and experience the game more fully. That was worth the extra time because it contributes to the primary experience, however subtly.
All the extra stuff I wanted to do but didn’t get to is now in a list for future consideration. Maybe I’ll come back and update Derelict, maybe I’ll make a sequel, maybe I’ll just try to add this stuff to some future project. What’s important is that I made something with intention, and that it got done.
Speaking of which, you can go play it yourself right now, for free, on my Itch.
Hell, you could even leave a review if you like it.
15 notes
·
View notes
Text
Infdev to Modern, Post 1
So, this is something I’ve been meaning to do in some form since December or so of last year, and now it is finally happening! The concept is fairly straightforward in nature. I am going to play Minecraft (specifically Java Edition) from the earliest version that allows you to carry a world forward to the present day, and then do that! I intend to play from Java Edition Infdev 20100327 to whatever the current version of Minecraft is when I get there. (This concept is heavily, heavily derivative of bugmancx’s series Minecraft: The Journey. As such I highly recommend checking it out! It’s a nice watch! https://www.youtube.com/watch?v=ZmAF1bThqRw&list=PL0qwyBj5XSpZG35qFvy2Z9VbezZ1t4cGt )
So, Java Edition Infdev 20100327. After several versions of development to figure out infinite world generation, the game has finally metastasized back into a playable form. As of now, and it will be until quite a long time from now before this changes, the only game mode is survival. Despite being over a decade old, a large amount of the basic gameplay is already established. You chop down trees and mine minerals to create tools to allow you to mine and chop down more trees.
The big additions and changes in this version of the game are as follows.
The level format has been changed from the indev level format to the alpha level format (This is what allows us to use this version as our starting point!).
The title screen and menu have been changed.
Testing and debug items from previous builds of infdev have been removed from the player’s starting inventory.
With the preamble sorted, let’s get to playing Minecraft!
Upon spawning in, I am greeted by two things. A quaint little valley, and some pretty nasty lighting errors!
The other end of the valley, featuring more lighting errors.
Well, those lighting errors will solve themselves at some point, so I decided not to worry about it, and get to working on more immediate concerns.
I get to work chopping down a tree, and then I remember to do something that I always need to get taken care of while playing older versions of the game
In the older versions of Minecraft, the inventory key is mapped to I. This makes some sense, but in the modern game, this is mapped to E, which is much more ergonomic.
As something worth noting, you’ll notice that in the above photo my skin hasn’t shown up, and the default is visible. I’m unsure of the exact cause of this particular issue, but it will be fixed by the end of infdev. While we’re here though…
A silly pic of the old walk cycle where the player character would flail their arms around wildly. Anyway, back to the game.
I scaled the sides of the valley, and chopped down a few more trees, eager to ensure I have enough wood to obtain the torches and tools I’ll need for my upcoming projects. I crafted the bare minimum of wooden tools, and then got to work on mining the coal out of the mountainside.
Eventually; however, night began to fall, so I dug myself into an alcove and started working on a shelter for myself.
You may notice I blocked myself off with a single block of dirt here. This isn’t just because dirt is more practical than a door at this state in the playthrough - doors hadn’t been added to the game yet! Once I was sure I’d securely sealed myself away, it got straight to my favorite activity: digging long stone hallways! Other than this, it was an uneventful night.
I haven’t noticed any monsters spawning, despite the game being on normal, so I think I'm going to update to the next version and see if that fixes that particular issue.
See y’all later!
-Ciel
11 notes
·
View notes
Note
Any tips on learning python? I already know Java, C++, and JavaScript.
Hiya! 💗
Since you already know those other languages, Python will be literally a piece of cake. It'll be easy for you, in my opinion.
Tips? I would say:
Start with the Basics: Begin by understanding the fundamental syntax and concepts of Python. After learning those, you can basically apply the languages you know logic into Python code and you'll be done. You can use online tutorials on YouTube or free online pdf books to get a good grasp of the basics.
Leverage Your Programming Experience:Like I mentioned Python shares similarities with many languages, so relate Python concepts to what you already know. For example, understand Python data types and structures in comparison to those in Java, C++, or JavaScript.
Projects and Practice:I sing this on my blog but practice is crucial. Start small projects or challenges to apply your Python knowledge. Depends what you want to build e.g. console apps, games, websites etc. Just build something small every so often!
Hope this helps! More tips I made: ask 1 | project ideas | random resources
⤷ ♡ my shop ○ my mini website ○ pinned ○ navigation ♡
#my asks#codeblr#coding#progblr#programming#studying#studyblr#learn to code#comp sci#tech#programmer#python#resources#python resources
29 notes
·
View notes
Text
Mastering Data Structures: A Comprehensive Course for Beginners
Data structures are one of the foundational concepts in computer science and software development. Mastering data structures is essential for anyone looking to pursue a career in programming, software engineering, or computer science. This article will explore the importance of a Data Structure Course, what it covers, and how it can help you excel in coding challenges and interviews.
1. What Is a Data Structure Course?
A Data Structure Course teaches students about the various ways data can be organized, stored, and manipulated efficiently. These structures are crucial for solving complex problems and optimizing the performance of applications. The course generally covers theoretical concepts along with practical applications using programming languages like C++, Java, or Python.
By the end of the course, students will gain proficiency in selecting the right data structure for different problem types, improving their problem-solving abilities.
2. Why Take a Data Structure Course?
Learning data structures is vital for both beginners and experienced developers. Here are some key reasons to enroll in a Data Structure Course:
a) Essential for Coding Interviews
Companies like Google, Amazon, and Facebook focus heavily on data structures in their coding interviews. A solid understanding of data structures is essential to pass these interviews successfully. Employers assess your problem-solving skills, and your knowledge of data structures can set you apart from other candidates.
b) Improves Problem-Solving Skills
With the right data structure knowledge, you can solve real-world problems more efficiently. A well-designed data structure leads to faster algorithms, which is critical when handling large datasets or working on performance-sensitive applications.
c) Boosts Programming Competency
A good grasp of data structures makes coding more intuitive. Whether you are developing an app, building a website, or working on software tools, understanding how to work with different data structures will help you write clean and efficient code.
3. Key Topics Covered in a Data Structure Course
A Data Structure Course typically spans a range of topics designed to teach students how to use and implement different structures. Below are some key topics you will encounter:
a) Arrays and Linked Lists
Arrays are one of the most basic data structures. A Data Structure Course will teach you how to use arrays for storing and accessing data in contiguous memory locations. Linked lists, on the other hand, involve nodes that hold data and pointers to the next node. Students will learn the differences, advantages, and disadvantages of both structures.
b) Stacks and Queues
Stacks and queues are fundamental data structures used to store and retrieve data in a specific order. A Data Structure Course will cover the LIFO (Last In, First Out) principle for stacks and FIFO (First In, First Out) for queues, explaining their use in various algorithms and applications like web browsers and task scheduling.
c) Trees and Graphs
Trees and graphs are hierarchical structures used in organizing data. A Data Structure Course teaches how trees, such as binary trees, binary search trees (BST), and AVL trees, are used in organizing hierarchical data. Graphs are important for representing relationships between entities, such as in social networks, and are used in algorithms like Dijkstra's and BFS/DFS.
d) Hashing
Hashing is a technique used to convert a given key into an index in an array. A Data Structure Course will cover hash tables, hash maps, and collision resolution techniques, which are crucial for fast data retrieval and manipulation.
e) Sorting and Searching Algorithms
Sorting and searching are essential operations for working with data. A Data Structure Course provides a detailed study of algorithms like quicksort, merge sort, and binary search. Understanding these algorithms and how they interact with data structures can help you optimize solutions to various problems.
4. Practical Benefits of Enrolling in a Data Structure Course
a) Hands-on Experience
A Data Structure Course typically includes plenty of coding exercises, allowing students to implement data structures and algorithms from scratch. This hands-on experience is invaluable when applying concepts to real-world problems.
b) Critical Thinking and Efficiency
Data structures are all about optimizing efficiency. By learning the most effective ways to store and manipulate data, students improve their critical thinking skills, which are essential in programming. Selecting the right data structure for a problem can drastically reduce time and space complexity.
c) Better Understanding of Memory Management
Understanding how data is stored and accessed in memory is crucial for writing efficient code. A Data Structure Course will help you gain insights into memory management, pointers, and references, which are important concepts, especially in languages like C and C++.
5. Best Programming Languages for Data Structure Courses
While many programming languages can be used to teach data structures, some are particularly well-suited due to their memory management capabilities and ease of implementation. Some popular programming languages used in Data Structure Courses include:
C++: Offers low-level memory management and is perfect for teaching data structures.
Java: Widely used for teaching object-oriented principles and offers a rich set of libraries for implementing data structures.
Python: Known for its simplicity and ease of use, Python is great for beginners, though it may not offer the same level of control over memory as C++.
6. How to Choose the Right Data Structure Course?
Selecting the right Data Structure Course depends on several factors such as your learning goals, background, and preferred learning style. Consider the following when choosing:
a) Course Content and Curriculum
Make sure the course covers the topics you are interested in and aligns with your learning objectives. A comprehensive Data Structure Course should provide a balance between theory and practical coding exercises.
b) Instructor Expertise
Look for courses taught by experienced instructors who have a solid background in computer science and software development.
c) Course Reviews and Ratings
Reviews and ratings from other students can provide valuable insights into the course’s quality and how well it prepares you for real-world applications.
7. Conclusion: Unlock Your Coding Potential with a Data Structure Course
In conclusion, a Data Structure Course is an essential investment for anyone serious about pursuing a career in software development or computer science. It equips you with the tools and skills to optimize your code, solve problems more efficiently, and excel in technical interviews. Whether you're a beginner or looking to strengthen your existing knowledge, a well-structured course can help you unlock your full coding potential.
By mastering data structures, you are not only preparing for interviews but also becoming a better programmer who can tackle complex challenges with ease.
3 notes
·
View notes
Text
My least favorite QSMP egg that isn't like because I hate the reason why the egg exists (Tallulah being lore bait for Wilbur) or because the person behind them was noticed doing microagressions (One of the Pomme admins was reported have don't micro aggressions)
is sunny. I don't like sunny, and it's for like a reeeeally dumb dumb dumb dumb dumb dumb stupid stupid stupid salty reason? Like most stupid reason of all time
I wanted to make a qsmp egg Sona, and choose a crown from my dsmp Sona days but also irl I have headphones that double as noise canceling ones I have a 3d printed kingdom hearts crown attached to. As well as sunglasses as a more recent touch because I started wearing sunglasses even indoors especially when out in public spaces to help with light sensitivity issues.
And that's just..her accessories. She's just. My egg Sona..but like. Nothing like my egg Sona and seeing her and being like grrr but that was suppose to be MY eggsona.
Like I wanted to work on the qsmp, I thought about applying in the past but my day job and sleep schedule and generally lack of skills playing java PC Minecraft would make me a hard pick (in my personal opinion) and if I could personally choose my egg I play as...
Yeah it would have been an egg that had a crown and or sunglasses.
Of corse even in face of everything I want to still work for QSMP, I have my own passions and hopes and reasons why I still want to even if only as a said gig I do because I think I might enjoy it.
But definitely no longer as an egg because I don't think even if choose a different crown or sunglasses shape or style I'd be anything to the fans but a copycat to sunny. Even if I had my idea first.
So shout out to anyone ever who had an idea for a character or concept for a show ...only for it to be basically canon or have something like it canon or put into a media and then be weirded out and shit because your afraid people will call YOU the copycat.
#qsmp salt#qsmp discourse#stupid salt#salt for no reason#beef with an egg#salty salty user is salty for no actual good reason#salty salty salty#im salty for no good reason#dont shoot my salt ass#stupid vent#im jealous of an egg#qsmp opinion
10 notes
·
View notes
Text
Alright so part two of my explaining BSD french authors:
Arthur Rimbaud !

This is the boy. Looks young, right ? That's cause he's seventeen in this. (Funnily enough, he's exactly the same age as Verlaine's wife. Verlaine, though, is 27 at the time they meet. Yeah, I wasn't kidding when I said he was a piece of shit.)
Rimbaud is kind of THE poet of teenage rebellion. He was born in 1854, under Napoleon III to place him back in his historical context. He wrote quite a bit in opposition to Napoleon, actually.
His father is absent at first, and then not here at all later. He has... A complex and complicated relationship with his mother. He gave her a disrespectful nickname, she was seen hitting him several times (although at the time that's hardly surprising...), but at the same time when he asked her to go see him in London (at a time where the trip was very expensive, and she'd never left France in her life before that) she came, and his sister described him then as "the happiest I'd ever seen him". She's often seen as the source of his inner anger and rebellion.
What he hates for sure, though, was living in his house, with his family, and especially in his hometown, Charleville, which he despises.
He's especially known for having fled his house a lot, as in several times a year, for several days every time, walking during the day and sleeping on the road during the night. His most famous poem, "Ma bohème" (unstranslatable title because "bohème" is a french concept, but it basically means living your life day after day, in communion with nature and/or your dreams, often with an artistic dimension and no money whatsoever - also has travel connotations because it derives from "bohemian"), actually talks solely about that.
He wrote from his fifteenth to his nineteenth birthday, and was - still is - seen as a genius, being one of the most influential french poets ever despite having written for only four years. He was famous for being uncontrollable, and it translates back to his style : he took extremely traditional forms and changed their rules. (Which weirdly enough actually kinda fits with Rimbaud's ability ??)
If we ever have a Baudelaire in BSD, know that his character will probably look up to him, seeing as Rimbaud is usually seen as continuing Baudelaire's legacy of completely revolutionising french poetry. His two most famous books are "A Season in Hell" and "Illuminations", his last one. His literary movement is symbolism, invented by Baudelaire, characterized by melancholy and an attraction to the ethereal and mysterious. Rimbaud himself thinks that "the poet must search and describe the unknown" and, well, too bad if he sacrifices his sanity. He's also one of the first after Baudelaire to write prose poems.
He stopped writing, forever, at twenty, after the Verlaine fiasco. Actually, he wrote "Illuminations" directly after, then gave it to Verlaine so that he could get it published instead of doing it himself.
That's where his life gets really weird. He tries to learn seven different skills and languages while traveling everywhere, fails, his sister dies and he shaves his head for her funeral, is forced into the military to fight in Java, then deserts, gets hired on a boat on his way back and becomes a sailor, then tries to get hired in the American Navy, doesn't get any answer, goes in a circus then a factory, and all of that while traveling everywhere in the world in the space of about three years.
Nobody knows where he was for the nine months after that - and during all of this, everyone who knows him is hoping that he gets back to writing poetry - and then he goes home to help his brother with his farm before leaving, AGAIN. He walks from France to Italy, then gets in a boat to Alexandria, where he works in a construction project to manage the workers. This keeps going for about eleven more years, so I can't list everything this guy did : we'd need a whole ass novel.
He stays in Northern Africa for almost the rest of his life, although he travels quite a lot in that region and never stops moving. In France, he's still as famous as he was at 17, and several eulogies are written for him without his knowledge. We can also note that he does weapon trafficking, for a very short period, at some point. He writes to his family that he's "bored", of all things. He's described by the people he meets then as "smart, sarcastic, not very talkative, never talking about his past".
He then dies in Marseille, in his thirties, from cancer in his leg.
I'm gonna be honest : I don't like his BSD characterization. Rimbaud's a wild card, a chaotic teenager, as an author. I also ! Hate ! That he's Verlaine's mentor. But that'll be the next part, where I'll talk of IRL Rimbaud and Verlaine.
Previous and future parts are in the #IrlBSDFr tag.
#IrlBSDFr#arthur rimbaud#bsd rimbaud#bsd rimlaine#bungou stray dogs#bsd verlaine#bungo stray dogs#bsd spoilers
29 notes
·
View notes
Note
Hello Iris! Im Yvaine, I've been following you for a while now and I just wanted to say that you and your blog have inspired me a lot as a student and im so thankful for that ♡
And regarding my question, I am a beginner who wants to learn how to code, so what programming language do you recommend I start with??
Thanks!
Thankyou so much!!! I'm glad I can help others by being myself :)
I started off with Java because of school syllabus, but putting that aside — if you have a particular career in mind, then go with languages that pertain to that field. For example, an aspiring web developer would start with HTML.
If you're not set on a particular field and you're completely new, then I would recommend Java for an understanding of how everything works, and to know about basic concepts. You can also learn Python, and after that you could do small projects like a tic-tac-toe game, or rock-paper-scissors game to wrap up your understanding of the basics. I feel like you'd have a good idea of everything by then <3
@vexacarnivorous @codemerything @moose-mousse you can give your opinions and suggestions too to help out :)
9 notes
·
View notes
Text

Python is a widely used programming language that offers several unique features and advantages compared to languages like Java and C++. Our Python tutorial thoroughly explains Python basics and advanced concepts, starting with installation, conditional statements, loops, built-in data structures, Object-Oriented Programming, Generators, Exception Handling, Python RegEx, and many other concepts. This tutorial is designed for beginners and working professionals.
2 notes
·
View notes
Text
Normally I just post about movies but I'm a software engineer by trade so I've got opinions on programming too.
Apparently it's a month of code or something because my dash is filled with people trying to learn Python. And that's great, because Python is a good language with a lot of support and job opportunities. I've just got some scattered thoughts that I thought I'd write down.
Python abstracts a number of useful concepts. It makes it easier to use, but it also means that if you don't understand the concepts then things might go wrong in ways you didn't expect. Memory management and pointer logic is so damn annoying, but you need to understand them. I learned these concepts by learning C++, hopefully there's an easier way these days.
Data structures and algorithms are the bread and butter of any real work (and they're pretty much all that come up in interviews) and they're language agnostic. If you don't know how to traverse a linked list, how to use recursion, what a hash map is for, etc. then you don't really know how to program. You'll pretty much never need to implement any of them from scratch, but you should know when to use them; think of them like building blocks in a Lego set.
Learning a new language is a hell of a lot easier after your first one. Going from Python to Java is mostly just syntax differences. Even "harder" languages like C++ mostly just mean more boilerplate while doing the same things. Learning a new spoken language in is hard, but learning a new programming language is generally closer to learning some new slang or a new accent. Lists in Python are called Vectors in C++, just like how french fries are called chips in London. If you know all the underlying concepts that are common to most programming languages then it's not a huge jump to a new one, at least if you're only doing all the most common stuff. (You will get tripped up by some of the minor differences though. Popping an item off of a stack in Python returns the element, but in Java it returns nothing. You have to read it with Top first. Definitely had a program fail due to that issue).
The above is not true for new paradigms. Python, C++ and Java are all iterative languages. You move to something functional like Haskell and you need a completely different way of thinking. Javascript (not in any way related to Java) has callbacks and I still don't quite have a good handle on them. Hardware languages like VHDL are all synchronous; every line of code in a program runs at the same time! That's a new way of thinking.
Python is stereotyped as a scripting language good only for glue programming or prototypes. It's excellent at those, but I've worked at a number of (successful) startups that all were Python on the backend. Python is robust enough and fast enough to be used for basically anything at this point, except maybe for embedded programming. If you do need the fastest speed possible then you can still drop in some raw C++ for the places you need it (one place I worked at had one very important piece of code in C++ because even milliseconds mattered there, but everything else was Python). The speed differences between Python and C++ are so much smaller these days that you only need them at the scale of the really big companies. It makes sense for Google to use C++ (and they use their own version of it to boot), but any company with less than 100 engineers is probably better off with Python in almost all cases. Honestly thought the best programming language is the one you like, and the one that you're good at.
Design patterns mostly don't matter. They really were only created to make up for language failures of C++; in the original design patterns book 17 of the 23 patterns were just core features of other contemporary languages like LISP. C++ was just really popular while also being kinda bad, so they were necessary. I don't think I've ever once thought about consciously using a design pattern since even before I graduated. Object oriented design is mostly in the same place. You'll use classes because it's a useful way to structure things but multiple inheritance and polymorphism and all the other terms you've learned really don't come into play too often and when they do you use the simplest possible form of them. Code should be simple and easy to understand so make it as simple as possible. As far as inheritance the most I'm willing to do is to have a class with abstract functions (i.e. classes where some functions are empty but are expected to be filled out by the child class) but even then there are usually good alternatives to this.
Related to the above: simple is best. Simple is elegant. If you solve a problem with 4000 lines of code using a bunch of esoteric data structures and language quirks, but someone else did it in 10 then I'll pick the 10. On the other hand a one liner function that requires a lot of unpacking, like a Python function with a bunch of nested lambdas, might be easier to read if you split it up a bit more. Time to read and understand the code is the most important metric, more important than runtime or memory use. You can optimize for the other two later if you have to, but simple has to prevail for the first pass otherwise it's going to be hard for other people to understand. In fact, it'll be hard for you to understand too when you come back to it 3 months later without any context.
Note that I've cut a few things for simplicity. For example: VHDL doesn't quite require every line to run at the same time, but it's still a major paradigm of the language that isn't present in most other languages.
Ok that was a lot to read. I guess I have more to say about programming than I thought. But the core ideas are: Python is pretty good, other languages don't need to be scary, learn your data structures and algorithms and above all keep your code simple and clean.
#programming#python#software engineering#java#java programming#c++#javascript#haskell#VHDL#hardware programming#embedded programming#month of code#design patterns#common lisp#google#data structures#algorithms#hash table#recursion#array#lists#vectors#vector#list#arrays#object oriented programming#functional programming#iterative programming#callbacks
20 notes
·
View notes
Text
Gear Up! A Beginner's Guide to Learning Robotics
Hey Tech Enthusiasts!
Are you fascinated by robots and want to dive into the world of robotics? Learning robotics can seem daunting, but with the right resources and mindset, you can get started!

Step 1: Understand the Basics
- Familiarize yourself with programming languages like C++, Python, or Java
- Learn about electronics, circuitry, and microcontrollers (e.g., Arduino, Raspberry Pi)
- Get a grasp on mechanical concepts (e.g., kinematics, dynamics)
Step 2: Choose Your Path
- Robotics kits (e.g., Lego Mindstorms, Makeblock)
- Online courses (e.g., Coursera, edX, Udemy)
- Books (e.g., "Robotics, Vision & Control" by Peter Corke)
- Join online communities (e.g., Reddit's r/robotics, r/learnprogramming)
*Step 3: Practice & Build*
- Start with simple projects (e.g., line follower, robotic arm)
- Experiment with sensors, actuators, and control systems
- Join robotics competitions or hackathons
Step 4: Network & Learn from Others
- Attend robotics conferences, meetups, or workshops
- Collaborate with fellow robotics enthusiasts
- Participate in online forums
Resources:
- Code.org's Robotics Course
- Robotics Academy
- Robot Operating System (ROS)
Inspiration:
- Boston Dynamics' robots
- NASA's Robotics Alliance Project
- Robot Wars
Conclusion:
Learning robotics takes time, patience, and dedication. Stay curious, persistent, and creative!
What's your favorite robotics project or resource? Share in the comments!
[Reblog if you're interested in robotics!]
3 notes
·
View notes
Text
IzzyCraft - Devlog 0
First off, let's start with an introduction.
Hey! Name's Isabel. I'm a Comp Sci student in her 20s living in Portugal. I've wanted to try making a Minecraft mod for a while now, and I decided that right now's a good a time as any to start. I wanna keep track of my progress by making one of these every now and then. I'm gonna try to keep this something that I do… every two weeks maybe? But I'm not gonna hold myself to any specific posting schedule for now. Keeps me from going insane.
So, what's this about?
This blog will be a development log of my attempt at making a Minecraft mod. It's something I've always been curious about trying, and I figured I could start learning instead of just sitting on my ass wondering what it's like. I have decided to try the Fabric API out, because it's the one I've spent the most time actually playing on, and I've never really had many stability issues with it. Since this is Minecraft, I will also have to learn more Java, which, coming from someone who learned Python first… is gonna take some getting used to.
I want this development log to serve as practice for any potential attempts at game development in the future, hence the blog name. I guess you could say that everyone reading this is part of my little experiment.
Basic Idea for the mod
The working title is "IzzyCraft", for no other reason than I think it rolls off the tongue well.
The end goal of the mod is to introduce a fantasy rpg flair to minecraft by adding a bunch of your traditional fantasy species to the game. They will replace villagers in their respective biomes, and the player will also be able to chose what species to play as, similar to the origins mod, but with more mechanical balance tailored for online play.
So far, these are my concepts for playable species:
Underground (Found in Cave biomes in the Overworld)
Dwarf:
Darkvision: You see better in the dark.
Size: You are noticeably shorter than the base game model, and can fit through 1.5 block tall gaps without crouching.
Unshakeable Stance: Knockback has less effect on you.
Sky sickness: If you spend more than one day without sleeping with a roof over your head, you will become Skysick. Weapons and tools will take longer to draw, and you will restore health slower. To cure Sky sickness, you must sleep with a roof over your head.
Dark Elf
Darkvision: You see better in the dark.
Size: You are noticeably taller than the base game model, and need spaces to be 2.4 blocks tall to be able to fit without crouching.
Iron stomach: consumables with harmful effects (poison potions, suspicious stew, rotten flesh, etc.) have a reduced effect on you. You can eat raw mushrooms, including nether wart.
Sky sickness: If you spend more than one day without sleeping with a roof over your head, you will become Skysick. Weapons and tools will take longer to draw, and you will restore health slower. To cure Sky sickness, you must sleep with a roof over your head.
Surface (Found in the surface of the Overworld)
Human:
Base player.
Wood Elf (Found in Jungles and Old Growth Taiga biomes):
Nimble: Weapons and tools have a slightly faster draw speed. You have a higher sprint speed.
Size: You are noticeably taller than the base game model, and need spaces to be 2.4 blocks tall to be able to fit without crouching.
Bark skin: Negative effects on throwable and lingering potions, as well as potion tipped arrows, have a reduced effect on you.
Fast metabolism: Your hunger bar decays faster.
High Elf (Found in Flower and Birch Forests):
Arcane: Level caps on the enchanter are lowered (can make higher enchants with less bookshelves).
Size: You are noticeably taller than the base game model, and need spaces to be 2.4 blocks tall to be able to fit without crouching.
Ward: Enchanted weapons deal slightly less damage to you.
Slow learner: Killed creatures drop less experience.
Catfolk (Found in Deserts and Mesas):
Agile: You have a higher jump height, and a faster sprint speed. You take less fall damage.
Size: You are the same size as the regular player.
Claws: Unarmed attacks deal slightly more damage.
Fast metabolism: Your hunger bar decays faster.
Halfling (Found in the Plains Biomes):
Sneaky: Weapons and tools have a slightly faster draw speed. You can walk without triggering skulk sensors.
Size: You are noticeably shorter than the base game model, and can fit through 1.5 block tall gaps without crouching.
Lucky: Your critical hits have a chance of dealing double damage.
Light build: You have less health.
Minotaur (Found in Savannas):
Charge: Your critical hits deal slightly more damage.
Size: You are noticeably taller than the base game model, and need spaces to be 2.5 blocks tall to be able to fit without crouching.
Bulky: you have slightly more health.
Horns: You can't wear helmets.
Nether
Piglin (Found in Crimson Forests and Nether Wastes):
Netherspawn: You spawn in the Nether.
Charge: Your critical hits deal slightly more damage.
Size: You are the same size as the regular player.
Piglin Reputation: You do not need to wear gold to keep other piglins from attacking you. Piglin brutes are not hostile to you, unless you attack them first.
Overworld sickness: If you spend more than one day without sleeping in the Nether you will become sick. Weapons and tools will take longer to draw, and you will restore health slower. To cure Overworld sickness, you must sleep in the Nether.
Tiefling (Found in Warped Forests and Basalt Deltas):
Netherspawn: You spawn in the Nether.
Borne of Fire: Fire enchantments deal slightly more damage.
Size: You are the same size as the regular player.
Lava skin: You are immune to fire damage (swimming in lava still damages you). You can stand on magma blocks without taking damage.
Nether Metabolism: Your hunger bar decays faster. You can eat nether wart, as well as crimson and warped fungus.
The End
Enderfolk (Found in the End Islands):
Enderman Reputation: You can stare at an Enderman without angering them. They are still hostile if you attack them.
Teleport: You can Teleport short distances without needing to use an ender pearl.
Size: You are noticeably taller than the base game model, and need spaces to be 2.5 blocks tall to be able to fit without crouching.
Silky hands: You can collect grass and leaf blocks without special tools.
Hydrophobic: Touching water damages you. This also applies to rain (but not snow)
next: IzzyCraft - Devlog 1 - Doing the Thing
2 notes
·
View notes
Text
The Roadmap to Full Stack Developer Proficiency: A Comprehensive Guide
Embarking on the journey to becoming a full stack developer is an exhilarating endeavor filled with growth and challenges. Whether you're taking your first steps or seeking to elevate your skills, understanding the path ahead is crucial. In this detailed roadmap, we'll outline the stages of mastering full stack development, exploring essential milestones, competencies, and strategies to guide you through this enriching career journey.
Beginning the Journey: Novice Phase (0-6 Months)
As a novice, you're entering the realm of programming with a fresh perspective and eagerness to learn. This initial phase sets the groundwork for your progression as a full stack developer.
Grasping Programming Fundamentals:
Your journey commences with grasping the foundational elements of programming languages like HTML, CSS, and JavaScript. These are the cornerstone of web development and are essential for crafting dynamic and interactive web applications.
Familiarizing with Basic Data Structures and Algorithms:
To develop proficiency in programming, understanding fundamental data structures such as arrays, objects, and linked lists, along with algorithms like sorting and searching, is imperative. These concepts form the backbone of problem-solving in software development.
Exploring Essential Web Development Concepts:
During this phase, you'll delve into crucial web development concepts like client-server architecture, HTTP protocol, and the Document Object Model (DOM). Acquiring insights into the underlying mechanisms of web applications lays a strong foundation for tackling more intricate projects.
Advancing Forward: Intermediate Stage (6 Months - 2 Years)
As you progress beyond the basics, you'll transition into the intermediate stage, where you'll deepen your understanding and skills across various facets of full stack development.
Venturing into Backend Development:
In the intermediate stage, you'll venture into backend development, honing your proficiency in server-side languages like Node.js, Python, or Java. Here, you'll learn to construct robust server-side applications, manage data storage and retrieval, and implement authentication and authorization mechanisms.
Mastering Database Management:
A pivotal aspect of backend development is comprehending databases. You'll delve into relational databases like MySQL and PostgreSQL, as well as NoSQL databases like MongoDB. Proficiency in database management systems and design principles enables the creation of scalable and efficient applications.
Exploring Frontend Frameworks and Libraries:
In addition to backend development, you'll deepen your expertise in frontend technologies. You'll explore prominent frameworks and libraries such as React, Angular, or Vue.js, streamlining the creation of interactive and responsive user interfaces.
Learning Version Control with Git:
Version control is indispensable for collaborative software development. During this phase, you'll familiarize yourself with Git, a distributed version control system, to manage your codebase, track changes, and collaborate effectively with fellow developers.
Achieving Mastery: Advanced Phase (2+ Years)
As you ascend in your journey, you'll enter the advanced phase of full stack development, where you'll refine your skills, tackle intricate challenges, and delve into specialized domains of interest.
Designing Scalable Systems:
In the advanced stage, focus shifts to designing scalable systems capable of managing substantial volumes of traffic and data. You'll explore design patterns, scalability methodologies, and cloud computing platforms like AWS, Azure, or Google Cloud.
Embracing DevOps Practices:
DevOps practices play a pivotal role in contemporary software development. You'll delve into continuous integration and continuous deployment (CI/CD) pipelines, infrastructure as code (IaC), and containerization technologies such as Docker and Kubernetes.
Specializing in Niche Areas:
With experience, you may opt to specialize in specific domains of full stack development, whether it's frontend or backend development, mobile app development, or DevOps. Specialization enables you to deepen your expertise and pursue career avenues aligned with your passions and strengths.
Conclusion:
Becoming a proficient full stack developer is a transformative journey that demands dedication, resilience, and perpetual learning. By following the roadmap outlined in this guide and maintaining a curious and adaptable mindset, you'll navigate the complexities and opportunities inherent in the realm of full stack development. Remember, mastery isn't merely about acquiring technical skills but also about fostering collaboration, embracing innovation, and contributing meaningfully to the ever-evolving landscape of technology.
#full stack developer#education#information#full stack web development#front end development#frameworks#web development#backend#full stack developer course#technology
9 notes
·
View notes