<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Mohammad Nazmul Hossain</title>
    <description>The latest articles on DEV Community by Mohammad Nazmul Hossain (@naz365).</description>
    <link>https://dev.to/naz365</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F715227%2F39ebc550-9979-4bd9-92b1-d58f31df3b9c.jpeg</url>
      <title>DEV Community: Mohammad Nazmul Hossain</title>
      <link>https://dev.to/naz365</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/naz365"/>
    <language>en</language>
    <item>
      <title>Programming: Plan First, Then Code</title>
      <dc:creator>Mohammad Nazmul Hossain</dc:creator>
      <pubDate>Thu, 29 Sep 2022 19:14:11 +0000</pubDate>
      <link>https://dev.to/naz365/programming-plan-first-then-code-3gcf</link>
      <guid>https://dev.to/naz365/programming-plan-first-then-code-3gcf</guid>
      <description>&lt;p&gt;Many novice programmers attempt to dive right into writing the code (in the programming language) as the first step. However, writing the code is actually a much later step in the process. A good programmer will plan first and write second, possibly breaking down a large programming task into several smaller tasks in the process. Even when cautioned to plan first and code second, many programming students ignore the advice—after all, why “waste” 30 minutes planning when you are time-crunched from all the work you have to do. This trade-off, however, presents a false economy—30 minutes planning could save hours of trying to make the code work properly. Well planned code is not only more likely to be correct (or at least closer to correct), but is also easier to understand—and thus fix.&lt;/p&gt;

&lt;p&gt;To try to better understand the importance of planning before you write, imagine an analogy to building a house or sky scraper. If you were tasked with building a sky scraper, would you break ground and start building right away, figuring out how the building is designed as you go? Hopefully not. Instead, you (or an architect) would design blueprints for the building first. These blueprints would be interactively refined until they meet everyone’s specifications—they must meet the requirements of the building’s owner, as well as be possible to build reasonably. Once the blueprints are completed, they must be approved by the local government. Actual construction only begins once the plans are fully completed. Programming should be done in a similar manner— come up with a complete plan (algorithm) first and build (implement in code) second.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--FwsBPSVq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/iryob3n1r5afpy09p0m7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--FwsBPSVq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/iryob3n1r5afpy09p0m7.png" alt="Image description" width="880" height="440"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We said that the heart of programming is to figure out how to solve a class of problems—not just one particular problem. The distinction here is best explained by an example. Consider the task of figuring out if a particular number (e.g., 7) is prime. With sufficient knowledge of math (i.e., the definition of a prime number and the rules of division), one can solve this problem—determining that 7 is in fact prime. However, a programming problem typically looks at a more general class of problems. We would typically not write a program to determine if 7 is prime, but rather a program which, given a number N, determines if N is prime. Once we have an algorithm for this general class of problems, we can have the computer solve any particular instance of the problem for us.&lt;/p&gt;

&lt;p&gt;When we examine a class of problems, we have parameters which tell us which particular problem in the class we are solving. In the previous example, the class of problems is parameterized by N—the number we want to test for primality. To develop an algorithm for this class of problems, we must account for all possible legal values of the parameters. As we will see later, programming languages let us restrict what type of information a parameter can represent, to limit the legal values to those which make sense in the context of the problem. For primality testing, we would want our parameter N to be restricted such that it can only hold integer numbers. It would not make any sense to check if letters, words, or files are prime.&lt;br&gt;
To write a program which takes any number N and determines if N is prime, we must first figure out the algorithm for this class of problems. As we said before, if we attack the problem by blindly writing code, we will end up with a mess—much like constructing a sky scraper with no plan. Coming up with the appropriate algorithm for a class of problems is a challenging task, and typically requires significant work and thought.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>beginners</category>
      <category>python</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>C for scientific programming</title>
      <dc:creator>Mohammad Nazmul Hossain</dc:creator>
      <pubDate>Fri, 05 Aug 2022 12:02:32 +0000</pubDate>
      <link>https://dev.to/naz365/c-for-scientific-programming-cc3</link>
      <guid>https://dev.to/naz365/c-for-scientific-programming-cc3</guid>
      <description>&lt;p&gt;My take on scientific programming is that I think of C as one of many tools in my toolkit for performing computational tasks in my scientific work. I wouldn’t necessarily suggest only programming in C. On the other hand, I would recommend taking advantage of C when the situation calls for it. In our lab, we use Python, R, (sometimes Matlab but increasingly less often), and when we feel the need, the need for speed, we use C.&lt;/p&gt;

&lt;p&gt;Interactive data exploration#&lt;br&gt;
For interactive data exploration, like when you want to load in some data, plot it in different ways, do some rudimentary calculations, plot the results, etc., then C may not be the best choice. For this sort of interactive exploratory scripting, a language like Python, Matlab, R, etc., may be entirely sufficient. In particular, these other languages make it very easy to generate great-looking graphics quickly.&lt;/p&gt;

&lt;p&gt;Processing large data#&lt;br&gt;
For cases where you need to process a large amount of data, you will find that these languages are slow. Even for fairly common statistical procedures like bootstrapping (techniques that involve resampling thousands or tens of thousands of times), interpreted languages will be orders of magnitude slower than C.&lt;/p&gt;

&lt;p&gt;This is the situation when C starts to become very attractive. If you have a data processing operation or a simulation, and you know it will take a long time to run, then it is often worth it to spend some time implementing it in C. The graph below compares the speed of interpreters for several languages. As you can see, C shines in this regard.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--81y89uCF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vt29a6qi0ul1j564rv2x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--81y89uCF--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vt29a6qi0ul1j564rv2x.png" alt="Image description" width="592" height="333"&gt;&lt;/a&gt;&lt;br&gt;
My rule of thumb is that if I have to wait more than about 10 seconds to see the result of a calculation or operation, then I get annoyed, and I think about implementing it in C.&lt;/p&gt;

&lt;p&gt;You might think, who cares if my calculation takes 10 seconds, or 30 seconds, not 5 minutes, for that matter? Are 5 minutes so bad? The answer is, no, it’s not so bad if you only have to do it once… but it’s almost never the case that you perform a computation on your data only once. &lt;/p&gt;

</description>
      <category>datascience</category>
      <category>devops</category>
      <category>programming</category>
      <category>c</category>
    </item>
    <item>
      <title>shitjs!</title>
      <dc:creator>Mohammad Nazmul Hossain</dc:creator>
      <pubDate>Sat, 07 May 2022 14:18:45 +0000</pubDate>
      <link>https://dev.to/naz365/shitjs-4dn8</link>
      <guid>https://dev.to/naz365/shitjs-4dn8</guid>
      <description>&lt;p&gt;&lt;a href="https://www.npmjs.com/package/shitjs"&gt;shitjs&lt;/a&gt; is &lt;code&gt;npm&lt;/code&gt; library which says itself &lt;code&gt;Another shitty library&lt;/code&gt;. It has no source, so it is truly shit. &lt;/p&gt;

</description>
      <category>testing</category>
      <category>javascript</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Free your wings with Linux</title>
      <dc:creator>Mohammad Nazmul Hossain</dc:creator>
      <pubDate>Thu, 09 Dec 2021 20:26:17 +0000</pubDate>
      <link>https://dev.to/naz365/free-your-wings-with-linux-4f1h</link>
      <guid>https://dev.to/naz365/free-your-wings-with-linux-4f1h</guid>
      <description>&lt;p&gt;Oh my god! Microsoft brings some crucial updates on their OS, yeah, it sounds good, but damn no. Because of its requirements. It’s an unusual surprise if you purchased a new PC for Windows 10, perhaps you have an even older and perfectly capable machine but you won't be able to update your machine. &lt;/p&gt;

&lt;p&gt;Windows 11 requires something like that, The system disk must be 64GB or larger, the PC must support TPM 2.0 and the PC must support Secure Boot there must be at least 4GB of RAM.&lt;/p&gt;

&lt;p&gt;You’re probably using Windows or Mac OS to read this, you will be amazed to know that there is another operating system that is way better than Windows or even Mac OS. So, Today I’m going to highlight some reasons why you should use Linux and never look back. So what is it? &lt;/p&gt;

&lt;p&gt;From smartphones to cars, supercomputers and home appliances, home desktops to enterprise servers, the Linux operating system are everywhere.&lt;/p&gt;

&lt;p&gt;It's in your phones, thermostats, cars, refrigerators, Roku devices, and televisions. It also runs most of the Internet, all of the world’s top 500 supercomputers, and the world’s stock exchanges. even Android is based on the Linux operating system.&lt;/p&gt;

&lt;p&gt;But beside being the platform of choice to run desktops, servers, and embedded systems across the globe, Linux is one of the most reliable, secure, and worry-free operating systems available in the market.&lt;/p&gt;

&lt;p&gt;What is Linux?&lt;/p&gt;

&lt;p&gt;Just like Windows, iOS, and Mac OS, Linux is an operating system. One of the most popular platforms on the planet. LINUX is an operating system or a kernel distributed under an open-source license. Its functionality list is quite like UNIX. The kernel is a program at the heart of the Linux operating system that takes care of fundamental stuff, like letting hardware communicate with software.&lt;/p&gt;

&lt;p&gt;Here’s why you should switch to Linux. While Linux already powers all the top 500 fastest supercomputers worldwide, I focus on desktop Linux for average Mango 🥭 people like you and me.&lt;/p&gt;

&lt;p&gt;01.Linux Is Free&lt;/p&gt;

&lt;p&gt;Let’s overlook it, cost matters. But you’re probably thinking you’ve never paid a dime for an operating system. You have. When you purchase a desktop or laptop, the cost of Windows is built-in. Not only that, but if you’ve ever upgraded Windows, you know of this cost. That inherent cost isn’t found only in the operating system. In our country, we have always been using pirated OS and software which is a kind of punishable crime. Many applications for either Windows or macOS have an associated cost. With Linux, you’ll find thousands upon thousands of free applications. Instead of paying for MS Office, you can install LibreOffice on Linux, directly from your distribution’s app store. Looking for a free Photoshop alternative? Try The GIMP. And when it comes time to upgrade your Linux distribution, it won’t cost you a penny … ever. Nearly every Linux distribution comes free of charge. With a couple of hundred bucks saved, you can use it to upgrade your hardware, purchase premium services, or do anything better than you can think of. Isn’t that exciting?&lt;/p&gt;

&lt;p&gt;02.More Secure: Antivirus not required&lt;/p&gt;

&lt;p&gt;To be honest, every platform has its share of issues. No operating system is immune to security threats, and Linux is no exception. However, Linux is one of the most secure platforms when compared to macOS and Windows.&lt;/p&gt;

&lt;p&gt;With a big community of developers/users, it gets fixed quickly even if someone finds a problem. However, sometimes with macOS and Windows, I’ve noticed that it takes a lot of time for them to fix the issues in a future update.&lt;/p&gt;

&lt;p&gt;And, of course, you don’t necessarily need an antivirus program on Linux. So, you also save on yearly/monthly subscriptions for Antivirus programs on Windows/macOS.&lt;/p&gt;

&lt;p&gt;Yes, one could argue that the market share of Linux on Desktop is lower than Windows/macOS. So, attackers don’t always target Linux users and hence, there aren’t any widespread security issues being spotted.&lt;/p&gt;

&lt;p&gt;The global Antivirus Software market size is projected to reach USD 3364.7 million by 2027, from USD 3635.5 million in 2020, at a CAGR of -1.1% during 2021-2027 only because of upcoming malware threats and cyber-attack.&lt;/p&gt;

&lt;p&gt;Even if that’s true (let’s assume), would you prefer to use something safer to use or something that’s a magnet to the virus, malware, and adware? I’ll respect your decision with that.&lt;/p&gt;

&lt;p&gt;3.Runs on any hardware&lt;/p&gt;

&lt;p&gt;All of us know that with every new release of Windows OS, a huge number of hardware systems become obsolete as their technical specifications are no longer adequate to run the latest Windows OS. Linux makes very efficient use of the system’s resources. Linux installation can be customized for users and specific hardware requirements. The installation procedure is very flexible and allows users to choose the modules they want to install. This allows them to install Linux even on old hardware, thus helping in optimal use of all the hardware resources.&lt;br&gt;
Linux runs on a range of hardware, right from supercomputers to watches. You can give new life to your old and slow Windows system by installing a lightweight Linux system or even run a NAS or media streamer using a particular distribution of Linux. There are also lightweight desktops like Xfce and LXDE which can run on lower-end PCs. Not just limited to that, you can also fire up a Linux distro on a Raspberry Pi or its alternatives to set up a basic system or work on a DIY project.&lt;/p&gt;

&lt;p&gt;04.Linux Is More Private&lt;/p&gt;

&lt;p&gt;When you use Windows, Microsoft creates an advertising ID for you and attaches information about your usage for ad targeting. The feature requires you to opt out, so it will operate by default until you choose otherwise. With Linux, you get much more respect for your privacy. Linux doesn't record your usage data and ships it to some data warehouse. There's no voice command feature registering your speech patterns to create a vocal fingerprint. Some distros may ask if you'd like to contribute to development by sending anonymized data to the developers so they can know which features you use. Again, it's up to you if and how you want to help the project.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Customization &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Users have tremendous flexibility in customizing the system as per their requirements. There are numerous choices for wallpapers, desktop icons, and panels. There are more than half a dozen desktop environments to choose from, like GNOME, KDE, etc. For any task, right from the GUI interface and file managers, to DVD burners and browsers, around four to six options are available for any particular software. The Linux versions of the most popular browsers are available. The Linux philosophy is based on using several small programs, each of which does one task very well. But these programs can be combined to write really powerful programs and utilities. Starting from the icon pack to the application window, you can change the look and feel of a Linux distro in minutes. In case you want to explore, you can refer to our list of the best GNOME themes and best icons for your Linux distro.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The Beauty of command line&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;One of the great strengths of Linux is its command line. While this is one of its strengths, most people initially fear Linux simply because of this command line. But now the day has changed. A user can continue his work only with the graphical user interface without going to the command line for months. Another excuse for not using Linux before is that Linux does not have the necessary software. Now, this excuse is not acceptable at all. Linux now supports everything from photo editing to superhit commercial animation movies. For example, Pixar Animation Studio uses Linux. With open-source animation software 'Blender', they are giving away all the nice animated movies. But every experienced Linux user knows what a command line is. Everything on the command line can be done in a matter of seconds, which can take hours to complete. Once you are familiar with Linux shells and shell scripts, it is possible to automate any task that can be done manually.&lt;/p&gt;

&lt;p&gt;07.Linux Covers Your Fundamental Needs.&lt;/p&gt;

&lt;p&gt;You can use Linux for virtually all your essential computing needs with its native apps. This includes web browsing, email, streaming, and more. Linux distributions are made for absolutely everything. Popular open-source software GIMP for image editing immediately after installation, Inkscape for vector graphic editing, LibreOffice or OpenOffice as a whole office suite, For example, if you need Microsoft Word, you can still use the web app on Linux, or choose from several native alternatives that can open, edit, and save DOC and DOCX files. Firefox or Chromium as a browser, Nice as an email client, Torrent Client, Nice as a popular OpenSource. The command-line editor is available in Vim, Emax, or Nano. Since Linux is for developers, popular programming languages ​​like Python, JavaScript, and Perl are pre-installed here. Installing other programming languages ​​is also a matter of command. Most programming tools are built primarily for Linux.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Linux for Education&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This is the most useful aspect for students, as they can use the software to study how it works, before modifying and extending the code to suit their needs. This will also help them to learn the internals of an OS and the software. This process will help in the development of new software and aid innovation based on local needs. Even if users are not programmers, they can contribute to Linux by helping in documentation, translation, and testing. Linux is used in student and professional life. If you want to study computer science and engineering, there are one or more courses called the operating system. That course teaches the basics of an operating system. This course is done with Linux as the source code of Linux is open. As well as those who want to create an operating system, have no speed without the Linux kernel. So you need to have a clear idea of ​​how to use Linux and its basics. Knowing Linux is a must for those who will work as software engineers in a large or medium-sized company in their professional life. You don't have to be very skilled, you have to know the basic concepts: use the command line, basic and everyday commands, use a command-line editor (VIM, Nano, Emax), use git in the command line, etc. It turns out that those who are accustomed to using Linux are far ahead of others. When it comes to programming in Linux, you have to write a lot of commands (nowadays you may not have to do it all the time due to heavy IDE, but you have to do it in the beginning). Because of this, they have to know a lot. What a fairly new Linux user programmer knows, a fairly experienced programmer using Windows does not know. The things that Linux users know, the things that they need to know — Windows users don't know that, they will know. You can verify the truth of this statement with your classmates.&lt;/p&gt;

&lt;p&gt;It can be a fantastic educational tool for schools and colleges as free software is available to aid in teaching. Proprietary software for computation, like MATLAB, is very expensive. There are alternatives available to it like Scilab and GNU Octave. Linux software is available in many areas— Celestia and Stellarium for astronomy, Avogadro and Gabedit for chemistry, EMBOSS and TreeView X for biology; and ROOT, Octopus and Step for physics.&lt;/p&gt;

&lt;p&gt;Last but not the least&lt;br&gt;
Incredible Community Support. When you start using Linux, you are a part of the Linux community. This means, from now on you are not alone. Loneliness can never bother you. If you ever face any problem with the server or system, just drop a comment mentioning your problem in any forum. Thousands of users are always ready to solve your problem. Yes, Linux always offers you this helping hand. After all, who will use what is a personal choice. I have tried to highlight some of the benefits of Linux here. If you find it convenient, you can take a break from the world of Linux. Hope you like it.&lt;/p&gt;

</description>
      <category>linux</category>
      <category>educaton</category>
      <category>learn</category>
    </item>
    <item>
      <title>As a </title>
      <dc:creator>Mohammad Nazmul Hossain</dc:creator>
      <pubDate>Wed, 24 Nov 2021 02:05:25 +0000</pubDate>
      <link>https://dev.to/naz365/as-a-1io8</link>
      <guid>https://dev.to/naz365/as-a-1io8</guid>
      <description></description>
      <category>beginners</category>
      <category>javascript</category>
      <category>react</category>
      <category>git</category>
    </item>
  </channel>
</rss>
