Totally agree with Static Typing. Java was invented when corporations realized that, for the average programmer, pointers and memory management were forever going to be a sinkhole of time and productivity.
@livb41392 жыл бұрын
Used to work with Java for like 2 years and thought I hated it. Only after switching jobs recently and start working with js and python it's made me realize the importance of a strongly typed language, specially when working with other people.
@ContinuousDelivery2 жыл бұрын
Yes, I think it is easy to miss the reasons for something if you haven't seen the problem it is meant to solve yet.
@mazymetric8267 Жыл бұрын
@himanshusharma6713 Some people often use the terms 'explicit types' and 'strongly typed' interchangeably.
@Ewig_Luftenglanz Жыл бұрын
@br0ken_107 it's not strongly typed it just doesn't make stupid inferences like JavaScript to allow atrocities like adding empty arrays with empty objects, but you still can change variables types dynamically without explicit parsing, gosh In python you doesn't even have a way to create unmutable values (const or final), so no, python is not strong typed, it's just not as dumb as JS
@saeedarabzadeh18512 жыл бұрын
Having been on the internet for a long time...it's the first time I hear someone so careful not to harass or belittle other people's efforts or knowledge.we need more of you. Thanks gratefully.
@imhassane2 жыл бұрын
I love Java, I'll finish uni this year in France in October but I've already got a java full stack job at 22 that will start just after my studies. I'm so eager to have the opportunity to work with and master this language.
@dominusgloriae2 жыл бұрын
Java was the language that helped me get into IT, relocate to other country and it payed the bills for several years :) For those who like Java and not afraid of it weird verbosity I started working on a playlist with Java interview Q&A: kzbin.info/www/bejne/gpbUf3WYe85pkJI
@Anthony-wg9lu2 жыл бұрын
Hi Dave , love your angle on things ( and your t shirts) . We developers are very lucky and would benefit from reminding ourselves of this on a regular basis. I work remotely from Australia for UK clients in the rail industry - I get to live in a sunny climate , write code and play with big trains ! How good is that. Btw. I grew up in the Midlands , and it is so refreshing to hear your straight talk and familiar accent. Keep up the excellent content. live long and prosper.
@ContinuousDelivery2 жыл бұрын
Yes I grew up in Birmingham 😉
@pendago84842 жыл бұрын
7:59 I am learning java, and indeed, when I look up information on the internet and I get an answer actually conceived for c#, I most of the time don't look any further, because it almost always answers my java question.
@future_teknokrat75852 жыл бұрын
Hardly anyone will say this out loud, they'd rather complain about it's flaws. But the results are clear, even in the marketplace: Java. Not in every case, but certainly most. Even if one hates working in the language ecosystem.
@DavidAgboja Жыл бұрын
As a confused beginner, and one who has tried out Python, HTML, CSS and JS, and now settled for Java and seem to be really loved it, (alongside SQL). due to all the negative sentiments people throw at the language, I happen to need motivation on a daily, like someone saying to me "Java is awsome, gain mastery in it" this you've done and with enough reasoning to support the claim, the much I can say is "THANK YOU" :)
@MrKar182 жыл бұрын
I would love to hear your take on Kotlin as Java alternative. Java and Kotlin interchangeable these days for a programmer?
@lhxperimental2 жыл бұрын
Kotlin, Scala etc serve as testbeds for future java features. I won't make the switch unless I am programming for Android
@ahmedbathily70132 жыл бұрын
@@lhxperimental very true I have liked koltin before but now no ,I find it very mess trying to shortcut everything with useless features
@ahmedbathily70132 жыл бұрын
@@techtutorvideos I talked about some shortcut feature in Kotlin. trying to solve everything in one language can lead mess
@MrAbrazildo2 жыл бұрын
4:20, I can't even remember if I ever had a serious bug using pointers. Here go my tips for everyone, who use to have problems with that, to get rid of this issue once and for all: - If you have to allocate memory, don't do that directly: *use containers from the standard library* , STL. They have their size hidden from you, and manage it automatically. - When *traversing those containers, use their own iterators* (OO pointers). Member-f()s 'begin' and 'end' provide them for you. Just keep a model like this: *for_each (container.begin() + offset, container.end() - premature_end, some_algorithm);* With offset = 0. If you just want to run all the way _(default is copy, but you can reference that, with &)_ : *for (auto &a_var_not_ptr: container) some_algorithm (a_var_not_ptr);* In any of these cases you deal with pointer directly. - *Reallocations may invalidate previous iterators* : std::vector container; auto it = container.cbegin() + K; container.push_back (M); //May invalidate. auto x = *it; //May crash. There are 2 main solutions for this: a) Just "refresh it", after push_back: auto it = container.cbegin() + K; // ≃ F5 in a webpage. auto x = *it; //Guaranteed to work. b) *Recommended: reserve memory* right after container creation: //Chandler Carruth: _"We allocate a page each time. This is astonishing fast!"_ container.reserve (1024); container.push_back (M); //Just added M, not reallocate. auto x = *it; //Ok. There *won't has a new reallocation, as long as container.size()
@ContinuousDelivery2 жыл бұрын
Just to be clear, I was talking about C++ when Java was invented. There wasn't a standard template library then, and no containers for memory allocation.
@pascalmartin18912 жыл бұрын
My only beefs with Java are: - memory bloat. The joke is that the Java motto is "your RAM is all mine". You have to "jail" the JVM using a command line option, and then you are back to know everything about the program implementation, or else shoot from the hip and wish for the best. - how easy it is to shoot yourself in the foot with threads and protected methods. To me Java is no better than C++ on that matter. The language is otherwise so elegant. But I wish exceptions would go away, in any language. This was an experiment that has reached it's shelf life limit. Rust is showing a very interesting alternative.
@ponypapa67852 жыл бұрын
Yes, concurrency is horrible in Java, although there are a LOT of ways to help with that, built in the language. But, just like many other things, one needs to actively learn them, as they are anything but intuitive. Likewise, protected visibility is VERY useful when done right, but can easily be abused, even without the dreaded diamond problem. The memory bloat is something that I personally have not yet encountered - but maybe I just overlooked it. I do tend to try and find resource leaks (and memory leaks) while programming, which in turn might mitigate that, but that behavior is also everything but easy or intuitive. So yes, those are real problems. Like most other problems, they can be circumvented, and like most other problems, one needs to learn about them to be able to do that. I thank uncle bob and Josh Bloch for that in my case =) Not sure about exceptions, though - just checked exceptions, they CAN be really *really* annoying.
@pascalmartin18912 жыл бұрын
@@ponypapa6785 let me clarify that I meant bloat, not leak. The JVM does a nice job of optimizing it's GC, but at the price of leaving a lot of memory unused. Amusingly our company's first big Java program worst bug was a memory leak: a bug missed removing items from an obscure list. The program died once every week.. The AWS developers have a nice take on languages, ranked according to energy use (a weighted sum of RAM and CPU use I guess) and it is telling.
@pascalmartin18912 жыл бұрын
@@ponypapa6785 about exceptions my beef is that one is tempted to ignore them (the default in most languages) and pass the buck to the caller, which may not have the context needed to handle them properly. The Rust's result approach seems to promote a better programming habit. (I am very new to Rust, so the conditional. I have been using exceptions since the '80s--in Ada.) Count me in the not-so-happy-with-java group, but it might just be my grumpy self.
@samuellotz83042 жыл бұрын
Interesting to leave out Go from this comparison. I see more Go than Python when applying for software engineer jobs.
@cotton9126 Жыл бұрын
My main complaint about Java is that there is much better alternative (Kotlin) that could be integrated into existing projects, yet I absolutely cannot convince my team to learn anything new. I actually had to fight for months so we'd upgrade to Java 17 and even then it only happened in one of our projects
@rrrrr5042 Жыл бұрын
I have switched to Kotlin and I hate it. the only problem with java is that most have to stay on older versions and support lots of legacy code, at the same time newer java versions offer many cool features that kotlin has.
@lufenmartofilia580411 ай бұрын
This comment aged badly lol
@robby34672 ай бұрын
@@lufenmartofilia5804 How so?
@frostyrobot76892 жыл бұрын
Another down-to-earth and informative video Dave. Just picked up a copy of your book...
@conradtm2 жыл бұрын
I remember transitioning from engineering to computer science, which moved me from using Matlab to using Java. Java was absolutely more verbose. That being said, while brevity is the soul of wit, Matlab more reminded me of that “Why waste time say lot word when few word do trick” quote from the office. It’s fewer words but it’s not easier to understand in the least.
@becayebalde38202 жыл бұрын
As a CS Student , I used to love Java Here’s why I changed my mind: 📍when you are stuck on some weird errors, it’s difficult to find a solution 📍 setting up a project is so tedious (maybe that’s just Eclipse) 📍 The documentation is also poorly explained
@abhishekpatra795411 ай бұрын
In my opinion learn something which you are comfortable with and which pays the bills and the job is not less open
@becayebalde382011 ай бұрын
@@abhishekpatra7954 I am a Data Scientist Junior now, I work with Python mainly.
@toby99992 ай бұрын
Eclipse would be an absolute nighmare, especially for beginners.
@alexandrutoma91872 жыл бұрын
Love your ideas sir!!! Always valuable!
@dzbanek4971 Жыл бұрын
It was a pleasure to listen to you. Nicely said.
@thats-no-moon2 жыл бұрын
Another great video, thanks :) -- I transitioned from Rails to JavaScript to now Java and I like working as a Java developer by far the most. It's a great job.
@RickGladwin7 ай бұрын
Over the last 18 years or so I’ve coded in PHP, JavaScript, TypeScript, Ruby, Python (tell me you were a web dev without telling me 😂) and now Java as my day-to-day, professional language. After a period of adjustment, I find Java to be one of the most satisfying languages to code in. Just enough “optional” low-level control to be performant and powerful, a good type system, and most high-level features (like garbage collection) active by default for when I don’t need to think about them. And it feels good knowing there are whole teams of people whose job it is to make the language better over time.
@Georgggg5 ай бұрын
Owning a company that has Java legacy codebase is worst thing possible. At this point Java development is pure rent seeking business, and have to die with sinking companies it leeches on.
@wanesmify2 жыл бұрын
Informative and eloquent! Thank you!
@Immudzen2 жыл бұрын
I work on HPC software and I remember a professor I had said you could use c,c++, or even python for the code but if you wrote the code in java he would throw you out the window. He was also not wrong on that when we looked at the numerical performance. Every version of BLAS I have encountered for Java is much slower than the ones available for c based languages. Often 10s to 100s of times slower. However, Python makes it easy to hand off all that heavy lifting to c and c++ while Java calling to a c based BLAS is also slow. So it is easy to get code working and correct in Python and then update the algorithm to be efficient and then push off the performance to lower level languages by calling existing high performance libraries. That is why we have things like numpy, tensorflow, and torch.
@asifinet792 жыл бұрын
I love Java, and I have been developing Enterprise apps for more than 10 years in Java Projects.
@sandywool9 ай бұрын
Can you mentor me ?😊
@HellsJayBells2 жыл бұрын
I've been professionally working with Python for over 5 years now. I love the language, and think it is certainly fine for large projects. I do, however, understand the aspect of reliability in the community. For some frameworks like Django, typically the online help is really solid. However when you start looking through some of the data science communities the code quality jumps off a cliff. I think this is related to the lower entry barrier. There are trade offs. It is nice to see people getting into code, but as a professional it can be a little grating constantly seeing low quality code. I promise you, there are some of us out here trying to hold ourselves to a higher standard.
@ContinuousDelivery2 жыл бұрын
I know that to be true, my point is that I don't think that there is anything inherent in the language and common tools to promote that, whereas I think that there are things in the language and tools around Java that do. We could certainly debate that, but that is really what I meant in my comment about "I'd only do a Python project with others if they did great TDD". TDD is one approach to replacing, and supplementing, the protections that static typing, and strong tools offer. I think Python is a great tool, but to do a great job requires us to be expert and on our game. Java does too, but just a little less expert and a little less on our game YMMV!
@bobbycrosby97652 жыл бұрын
It's because data science code is oftentimes written by people that are scientists first and programmers second. You see this in a lot of code written by scientists - it's a giant tarball. Language hardly matters, I've seen unholy messes of Java written by scientists in the past too.
@ContinuousDelivery2 жыл бұрын
@@bobbycrosby9765 Yes, there is a lot of very bad code written by scientists 😬 I think that they suffer the "smart-person's problem" when it comes to SW "how hard can it be - its not rocket science" - and the trouble is that SW can be extremely hard, but it doesn't look like it on the surface.
@robertmazurowski59742 жыл бұрын
@@ContinuousDelivery Python has strong typing... IT is something you Discovery after the Basics of the language. IT is optional though, but required to be used with a lot of frameworks and libraries.
@centerfield63392 жыл бұрын
@@robertmazurowski5974 it has obvious strong typing and you spot it as soon as you add a string and an int together :-)
@peter-klausnikolaus48232 жыл бұрын
I just started my new job as a java programmer after changing carreers and i do agree 100%.
@HominisLupis2 жыл бұрын
Dave, love your stuff as always. Cheers!
@ReedoTV2 жыл бұрын
I like python much less than I should. And I like javascript a lot more than I should.
@compscitopics Жыл бұрын
Great information, thank you!!
@nicopostigo1232 жыл бұрын
Great video, thanks Dave!
@miroslawturski2 жыл бұрын
I have done quite a few things in my professional career, but being (java) programmer is by far the best.
@slr1502 жыл бұрын
Java features such as remote debugging, OQL (for heap analysis), JFR are very useful diagnostics tools .
@whatValuesDoYouLiveBy10 ай бұрын
Very nice video. Yes, love of learning is very crucial for working in IT and software engineering!
@TheAnthypass11 ай бұрын
Amazing watch, thank you!
@elliott81752 жыл бұрын
Okay, don't roll your eyes, but C++ has come a long way: Pointers: When I tell people I'm a C++ programmer they say "Wow! You really like all that memory management?" In modern C++, unless you're directly communicating with hardware (embedded systems), you should basically never, ever use a raw pointer - and it should even be rare to use a shared_pointer/unique_pointer. I really do not have to worry about memory management. Those days have long gone. OOP: C++ is not all about objects! I think functions should be the default - write a class when it makes sense (which is quite often, I'll admit). When I was being taught C++ at uni there was an emphasis on inheritance, which should actually be quite niche. Complicated inheritance trees are awful. These days good code reuse comes from templates and composition of classes/functions with no side effects. Okay, I lied: The code I work on has a legacy core and so I *do* have to deal with memory management, but I've written sizeable projects before with literally no pointers (not even unique/shared).
@MickenCZProfi2 ай бұрын
I agree, I find memory issues in modern C++ to be a nothing-burger, it's easy to write memory safe code. The problem is, let's say you are working with a team of 10 people on a legacy codebase and half of them are terrible at C++ and constantly use raw pointers everywhere. Java just limits how bad the code written by your coworkers can be, and I love it.
@toby99992 ай бұрын
I've been a C++ programmer for 30 years. I love it. Flexible, powerful, and performant, and implementations build native executables by default. I agree with your approach to OOP. It's a tool, but it shouldn't dominate.
@BobBob-qm2bm2 жыл бұрын
Thank you for sharing the knowledge
@ContinuousDelivery2 жыл бұрын
My pleasure
@kamertonaudiophileplayer8472 жыл бұрын
Regarding a performance, my phone can play DST files without a problem now, although I think it is more related to a performance of phone chips than Java used in the decoder. Continue talk about mobile platforms, Kotlin also got a good usage on Apple devices among with Dart, so generally, Kotlin will be considered a truly multi platform and multi purpose language backed by own JVM compatible machine.
@BBdaCosta2 жыл бұрын
They didn't especified the java version, I can't do anymore Java 5-6 code bases hahahaha
@TamDNB2 жыл бұрын
Weird there's no other languages mentioned, just Architect/DevOps/Full Stack
@grimordwow2 жыл бұрын
I transitioned from Java into Java 2.0 (Kotlin) recently so I'm even happier!
@donDan94 Жыл бұрын
That's nice. How did you get that full stack job, learning by yourself programming or you got the skills at uni?
@NotaUser12342 жыл бұрын
me: why do I need to add getters and setters to every accessible property? my java mentor: abstraction! you can override the get and set behavior me: why do we use Lombok? my java mentor: because we never actually override the get/set behavior
@ponypapa67852 жыл бұрын
BeCaUsE sOnAr SaYs So! also you CAN override the generated getters and setters in subclasses, but when you are overriding Getters and setters for POJOs, then there is something SERIOUSLY wrong with your approach. Plus: IMO, the only reason for (plain) setters is: regulate write-access to a variable. If necessary, fail-safes can be built in to ensure correct behavior without then having to change the API. The only reason for explicit getters should, again, be API and the idea of defensive copying. However, those are MY opinions that very few of my colleagues seem to share =)
@diego.alcantara.rosario2 жыл бұрын
Java 17's records made that a lot easier: you don't have to write getters because the language provides one for each declared property, and you don't need to write setters because the proprties are assigned when creating the instance (records are immutable)
@ponypapa67852 жыл бұрын
@@diego.alcantara.rosario records are so effing great... basically remove need for lombok entirely =)
@omaradrian802 жыл бұрын
Great video!!!
@MrAbrazildo2 жыл бұрын
5:13, C++ 3x1 Java (2,7x1, actually), according to a test at Dave's Garage, another ex Microsoft: kzbin.info/www/bejne/emTLZ2WonMqqkK8 , if you consider C# is about the same speed as Java: kzbin.info/www/bejne/qXumZH2pq82Ab9E . 5:35, + C++ also gives you more control over the design too, allowing to make better tools, even for defensive proposes. I heard in a presentation that C++ is also used in "secure critical systems", or something like that. I'm not a bit surprised. I coded my own boundaries checking for any container, and never again had a problem about that that wasn't reported properly. 5:49, Mike Acton about this for his HPC#, an attempt to make C# the new C++: kzbin.info/www/bejne/q2mlZJ1up9aMg9k .
@sadiulhakim78143 ай бұрын
Thanks for this video, man. OpenJdk has some projects on going they would make java run faster and take less memory. Also, we have GraalVM now.
@valentyn.kostiuk2 жыл бұрын
Best time for now was programing C#, most comfortable language for me.
@jayshah56952 жыл бұрын
Tell this to an android developer for whom the sdk and apis are constantly changing with barely any structure.
@t.s.7440 Жыл бұрын
Hello, I have the opportunity to start two free courses, one in C# Fullstack, through the ICT division of a temporary agency, which at the end of the course would allow me to enter a consultancy company with a permanent contract in remote work. And the other course in Java as a programmer (Frontend and Backend) in the banking/insurance sector through a leading company in training, IT consultancy and software development that collaborates with banks and insurance companies, at the end of which I would be hired indefinitely in remote work. Which training course in programming should I choose the one with the C# language or the Java one? Sorry🙏 for my english.
@ContinuousDelivery Жыл бұрын
I can't speak to the value of the courses, I don't know anything about them. In my view the difference between Java and C# is negligible from a technical perspective. They are very close to one another in most ways. If you can program in one, it is not a big step to learn to program in the other. In most league tables of languages, Java is more widely used than C#. My advice is that unless you have a reason to pick one tech over the other, then look at the job after the course, rather than the programming language as the deciding factor. What are the people like, how will they support you in your learning and so on. I have several videos on these topics, here are a couple: "20 Questions to ask your next employer" kzbin.info/www/bejne/aHLJnGyBi6qapqc "What Software Career Progression Looks Like For Junior Developers" kzbin.info/www/bejne/onW0eoyPltB9fdk
@t.s.7440 Жыл бұрын
@@ContinuousDelivery Thanks a lot for the answer. God bless you. 🇮🇹
@andreadiotallevi57805 ай бұрын
Nicely explained! Only thing I'd say is that we should start comparing with typescript rather than javascript.
@gammalgris24972 жыл бұрын
I like doing requirements enginneering to understand and interact more with the business side/ user. But I also like development work. You really need the practice of programming. Especially when you're also supposed to do 3rd level support. Reading logs and error messages won't help if you can't read the code. I can't imagine only doing one thing. The systems get more and more complex (see also conways law). The theory (requirements) without practice (the technical side and programming) makes it harder to understand how things work.
@olaiwolaoni1748 Жыл бұрын
Insightful video
@DArnez-c5n2 жыл бұрын
Even though Java has a great ecosystem, but when writing business logic, it just sucks because the language is not very flexible (expressive).
@AI-xi4jk2 жыл бұрын
My natural progression to safety: C -> C++ -> Java -> Scala -> Haskell ->? Idris/CoQ??? Damn why I’m not a mathematician!?
@BangsarRia Жыл бұрын
I’ve been a Java programmer for 27 years with no end in sight. Imo you have the history 95% wrong but that’s irrelevant now. What’s important is that at a minimum Java is strongly typed and compiled hence suitable for TDD, and still popular because it is widely known and used.
@PaulSebastianM2 жыл бұрын
Well balanced sir, well done.
@gabrielfono8442 жыл бұрын
I really love this video I have working as backend developer for 8 months I dont even think I have word to say. I am still new in the field and would probably ask you for more advice to move to mid and senior level. video around that topic would be really helpful.
@ContinuousDelivery2 жыл бұрын
Thanks for the suggestion, I will think about it.
@iCodeForBananas2 ай бұрын
Video is spot on
@kawaifreefirefrota4526 Жыл бұрын
How long it takes to get a job in java starting from zero?
@Yulrag2 жыл бұрын
From my experience: Java is stable and has good tools all around it. Python 3 can produce dependency hell so easily, that I just don't like it much, but it looks like a great thingy for quick algo prototyping. JavaScript has a thicker book on how not to program in it, than it's specification book is.
@SpuxyYEZ2 жыл бұрын
tell me why would anyone learn java in these days? ... like make abstraction on everything where u do not need... i love javaist ppl lets implement db and first what they want to do is 53453 interfaces with 244 abstraction because WHAT IF db will change from mysql to psql.
@Yulrag2 жыл бұрын
@@SpuxyYEZThe reasons are simple. One - almost every problem you may run into has been solved on stack exchange in one shape or form already. Second, newer, stable LTS versions, do not break much if anything. Try that with Python 3 or Rust if you like. Third, you have good practices all written down. You just have to apply them to your work. And as far as DB goes, I think hibernate and its variations tend to get that problem solved.
@RicardoSilvaTripcall2 жыл бұрын
@@SpuxyYEZ I think that is not Java or JVM issue, it is just good coding practice done wrong by clean coders/architects extremists ... I have seen java programs that had more interfaces than code solving business logic ... I like to simplify things, but have seen a lot of unnecessary complex things done in Java by so called "Gurus" or "Distinguished architects" ...
@H4KnSL4K2 жыл бұрын
Well said!
@cryptolicious37382 жыл бұрын
great video!
@gabrielfono8442 жыл бұрын
if you have a mentorship program to guide people earlier in their career , I will absolutely join it for sure. thanks for this amazing video and I look forward to watching more videos.
@glanern2 жыл бұрын
its true that java is very performant. if you give it memory. a lot of memory.
@Longlius Жыл бұрын
It's not particularly exciting but there's rarely any situations where I feel like I'm fighting Java. As a day job, it's probably one of the comfiest lines of work to be in.
@dropTheTwoPartySystem2 жыл бұрын
At one time, I thought Java was the best programming language for back-end development. But now believe that Go/GoLang is the best programming language for back-end development (Having used Java, C#, Python, Ruby, JS/TS(NodeJS).
@pascalmartin18912 жыл бұрын
Interesting: I have tried Prometheus on a 4GB mini-pc home server, and it ended badly. The (Linux) machine would crash once or twice a week. It was going out of memory. Prometheus would quickly take more and more memory until almost all was gone. When I looked at any options to restrict RAM use, I found that the max RAM used was hard coded, and that the Go GC would quickly take it all. I uninstalled Prometheus. I guess 4 GB is puny in the cloud?
@starlingafrica8791 Жыл бұрын
great video😍
@kacpergierycz6772 жыл бұрын
Omg this Topic just made my day greate:)
@DevlogBill2 жыл бұрын
Thank you for the education. I am learning JavaScript. I am focused on Web Development. I am trying to become full stack. From your video it sounds like Java doesn't work well for Web Development? That it is more of a server-side language? (Back-End/Not Full-stack) Would you say C# is the better approach? I ask because I am interested in finding employment for a medium to large corporations which uses either Java or C#. Thank you for the video.
@ContinuousDelivery2 жыл бұрын
Neither Java not C# are widely used for web development, projects that use Java or C# usually use a different language for the Web code, Javascript is probably still the most common.
@DevlogBill2 жыл бұрын
@@ContinuousDelivery Thank-you.
@rudycarv21974 ай бұрын
I also live in the UK, I want to become Java developer but before that do you think it would be better to learn First html,css and JS? According to some jobs offers here in England for Java or backend developers is desirable to know html,css and JS. Not 100% this is the right path but we will see, but I would appreciate any suggestion on this Path. Thank you very much
@ContinuousDelivery4 ай бұрын
I think that these are useful skills to have, but also not necessarily a pre-requisite. It depends on the employer. If you have all of them, then you are probably a more rounded developer, but it probably doesn't matter too much where you start. HTML and CSS are not "general purpose" so I'd start with either Java or Javascript, from the list you mentioned, and learn enough HTML and CSS to build the systems that you want to build in Java or JS. It really depends on what you want to do. You can do nice things with HTML & CSS without knowing much about programming, but I think it helps to learn *some* programming first.
@rudycarv21974 ай бұрын
Thank you very much for your advise I will consider to learn 1st JS then as you said use Css and html just the necessary for when building a project. Unfortunately I didnt find any software developer apprenticeship yet but I guess in my case without experience what will help to get a foot in the door are personal projects so I can showcase. I work as a catalogue developer for a Global Optical company which involves Data management and analysis. I follow yout channel for while your videos are so helpful and motivational. I just need to watch any of your videos that you probably covered AI taking jobs away from software developers lol Because this is something made me think if it is still really worth to lean programming but gut tells me that I will be successful with some sacrifices like perhaps pay cut if get a junior position.
@florianfanderl66742 жыл бұрын
In the past I did C# for nearly 10 years. Then I had a break of 4 years doing mostly Python. Recently I had to create a small package in C# and I found it really weird. The whole ecosystem and module concepts are so different from all the other languages. The same is true for the community around. Net and C#. I'm pretty sure it's not as bad anymore as when I did C#, especially considering .Net core. Still I can understand why people that never did .Net don't like it. But I must admit that C# was and still is a great language.
@marna_li2 жыл бұрын
As a C# developer, I can say that it is quite depressing working on a .C#/.NET project that has been running for 10+ years without much change. I love the new stuff and I keep updated, but somehow it feels backwards with all the legacy - and I imagine the same for Java. No wonder why many developers look to other new languages. But here I am still standing. I want to make a change and show the better parts of . NET. Blazor is easily the best invention so far.
@timgo23452 жыл бұрын
@@marna_li Hopefully .NET upgrades from now on will be pain free. The change from .NET Framework to .NET Core was a big one but if you already did it, it should be smooth sailing
@florianfanderl66742 жыл бұрын
@@marna_li I can totally relate. We also had a big legacy application doing a million things and I was one of the few that could maintain this beast. Sad but true, often the only choice you have is to change the company or insist on being moved to a fresh project. If you're too kind, they will keep you on the legacy stuff forever.
@luyolomntuyedwa53632 жыл бұрын
Spoken like a true veteran👌you Sir have just earned one more subscriber
@alexischicoine20722 жыл бұрын
Having good type information is definitely useful and python’s type hints and tools like mypy help a lot.
@juanvalentinsantimateo15912 жыл бұрын
Love that t-shirt by the way. 😁
@melski92052 жыл бұрын
I think the language is overblown, university types put too much on the syntax differences. Its the JVM that counts most and the stuff around the language. Java has great tooling, great libraries, professional support and has been mainstream for so long. I do love what Typescript has done for our UIs recently though and their frameworks. The main issue for Java is its owner. Java versioning can still be painful, but its not as bad as other languages. I also think its worth saying Java is more often used by larger companies and perhaps the subject matter of the work is more rewarding.
@sleepyp56842 жыл бұрын
Love the content Dave, any chance you could talk about infrastructure testing? I work in Ops, I'm not a developer, should I be applying TDD to infrastructure as code?
@JayCeeVids2 жыл бұрын
Yes you should, one of the main benefits of writing your IaC is that it becomes testable. Just Google testing strategies for whatever tech you are using in your team, there are bound to be plenty of resources providing methods to write your tests.
@sleepyp56842 жыл бұрын
@@JayCeeVids Thanks for the reply, I'm trying to find the Dave Farley for Ops. A lot of the testing strategies I've seen is after the fact and separate from writing IaC
@firmlyembedded72592 жыл бұрын
Great video, its really useful to have your perspective on this topic Dave. I am currently an embedded software programmer, I've used (embedded style) C++ a lot, but am currently forced to use C 🙄. I am thinking of moving into java roles to keep things fresh in my career, and to feel more productive rather than being bogged down with low-level issues and constant debugging. PS: Love the shocked looking smily over Visual Basic at 7:00😆
@jaimevtv Жыл бұрын
to become a java developer, does it require to work in office or remote work will be fine?
@siyaram28552 жыл бұрын
I am surprised Rails didn't come in the list.
@dinoscheidt2 жыл бұрын
Working with a JVM these days? Sure… I mean its pretty much pain compensation. Otherwise go up (any strongly typed abstract language like TypeScript), Domain Oriented (like Python for Data Scientists) or low into Rust, Go, C# to CCP / .NetCore. Oracle had its fun… time to get out of it I think.
@chaotic-voices-in-my-head2 жыл бұрын
That´s really quite surprising because in my country it seems that Java is not so in demand. Other languages like C# or Python are more in demand.
@robertgrant7212 жыл бұрын
Love the dig at EJB, what the hell was that all about?!
@robertgrant7212 жыл бұрын
AFAIK Java was inspired by Objective-C rather than C++
@eric-seastrand2 жыл бұрын
I love your shirt. And also the content, but the shirt in this video made me smile 😃
@CripplingDuality2 жыл бұрын
Sound arguments, and even though I'm professionally much more about C# and Python (hopefully F# in the future) , I think Java is a fine language. Regardless these aren't surveys but a meta analysis of glassdoor reviews which are easily gamed, so I won't put much stock in the results.
@searcherer2 жыл бұрын
i''m looking at the courses available near me, there's an option for web developer which includes Javascript, PHP, HTML, CSS, and separate for Java only I'm guessing it is more thorough, what would be a better choice for someone who doesn't know anything about IT just wants to try a new field? Your opinions would be apreciated!
@ContinuousDelivery2 жыл бұрын
It depends what you are looking for. If you are interested just because you like learning, or because you are thinking of starting a new career? Starting by learning Javascript is a popular route, but I think that the javascript eco-system is so diverse that it is sometimes hard to find any reasonable definition of "what does good JS code look like". As a beginner, that can be a problem. Java is more constrained, and these days, though still VERY popular in the job market is seen as a bit old fashioned. I think that this is a mistake, and that learning Java is a better place to start if you want to get good at coding than JS. It is a bit more strongly structured, and so "what is good" is a bit easier to answer. Python is a good choice too, and probably, at least in my opinion, a better teaching language than JS or Java. If you are looking for this from a Job perspective, then these are the 3 most popular languages by most counts. If you are a Windows user, another strong candidate is C#.
@searcherer2 жыл бұрын
@@ContinuousDelivery i guess i wanna learn a new modern set of skills that i might use with my current education in electrical installations, or start a new career depends on my efforts and circumstances obviously, just feeling like stuck right now, need a challenge 🙃 and maybe something less manual labor dependent
@user-wl7yb4zb8p2 жыл бұрын
David, what are your thoughts on Groovy and Grails. Micronaut?
@ContinuousDelivery2 жыл бұрын
I have not used any of them for real systems, so don't have much to say. I have, a couple of times, watched presentations on Groovy & Grails, and they looked pretty good. I think that the optional typing in Groovy is a problem for big teams, where I think static typing helps eliminate some problems. My list here though, wasn't really based on my preferences, but more on what counts as "most popular" in terms of use.
@coderlady_2 жыл бұрын
OMG I loooove your t-shirt 😍
@suiko6192 жыл бұрын
I knew I had the best job in the world! 😊
@pif5023 Жыл бұрын
Having coded with both Java and Python I would prefer Java unless we are talking about R&D. I will probably switch to Java soon (from JS/TS) professionally as I see all the positions that interest me in my company are in Java. Somehow I also see that Java experience is accepted to get into Rust or Go jobs which I think will take its place, Go especially.
@_us.m.an_6 ай бұрын
If you work with java do explore golang
@anticipayo2 жыл бұрын
Java can pay the bills. But I find scala far more rewarding to both my pockets and my intellect.
@onurislak Жыл бұрын
java programmer job is number one for me as well.
@robby34672 ай бұрын
My experience with java is so bad that it's probably going to push me out of the industry after a long career in languages.
@GriffinMurdoch Жыл бұрын
cool video)
@mikey100062 жыл бұрын
You have a point there but I like c++ so rip
@amit120002 жыл бұрын
At late age I start learning python , so I will continue with or learn Java Also, how u think I better programer
@ContinuousDelivery2 жыл бұрын
Depends what you are learning it for. If you want to be a "better programmer" then I think knowing more than one language gives you a better perspective on the things that matter and the things that are just conventions for the language that you know. Python is widely reported as the most popular language at the moment os there is nothing wrong with learning that. I would recommend that you learn TDD, if you don't do that already, before you pick up a second language. I have a free TDD tutorial on my training site which may help you get started with that: courses.cd.training/courses/tdd-tutorial
@amit120002 жыл бұрын
@@ContinuousDelivery Thanks Dave for valuable guidance
@AlmazKojaxmet10 ай бұрын
Java retirement is 15 age if you genuis
@manaslovesbirds2 жыл бұрын
Java had only 1 territory from the beginning to rule - Web Development JSP - dead Android - Kotlin has taken over Run Once Run Anywhere - no more a Java-only feature with the advent of containers
@ContinuousDelivery2 жыл бұрын
Not really, Java was originally written as a language for embedded systems. 🤔
@elfnecromancer2 жыл бұрын
I don't really like php myself but I don't think it's fair to call it not a generel-purpose language. Sure, I wouldn't pick it to for a game, a driver or an operating system, but I wouldn't pick Java or a bunch of other programming languages for that either. php is a mess, but it's long stopped being a server-side web page rendering thing.
@ContinuousDelivery2 жыл бұрын
Ok, would you build a command-line tool with it, or a non-web-based mobile app? I have only ever seen it used for web apps.
@elfnecromancer2 жыл бұрын
@@ContinuousDelivery CLI absolutely. I don't see any downsides to it other than my dislike for the language itself :) Mobile, probably no. Could make it work but I don't see why :)
@elfnecromancer2 жыл бұрын
But mobile is pretty niche, not in number of users but definitely in the number of languages you can use efficiently. We could look at even more niche Roku sticks (which are pretty big in US btw), and say only C++ is the general programming language because you can only code for Roku in C++ and BrightScript and BrightScript only works on the device.
@YossiZinger2 жыл бұрын
When you talk about "25% increase in productivity", how do you measure it? I had several discussions about it with various managers of all levels, and each one sees it differently
@ContinuousDelivery2 жыл бұрын
It was a long time ago. 25+ years, I couldn't tell you. It certainly wasn't scientifically rigorous. These days I'd measure performance not on productivity, which is difficult if not impossible to measure well, but on Stability & Throughput.