<?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: Sayr Olivares</title>
    <description>The latest articles on DEV Community by Sayr Olivares (@sayrolivares).</description>
    <link>https://dev.to/sayrolivares</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%2F3471560%2Fd809eb69-eec5-4414-b0b2-76fed0463e02.jpg</url>
      <title>DEV Community: Sayr Olivares</title>
      <link>https://dev.to/sayrolivares</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sayrolivares"/>
    <language>en</language>
    <item>
      <title>Computer Science como disciplina - la visión de Peter J. Denning</title>
      <dc:creator>Sayr Olivares</dc:creator>
      <pubDate>Mon, 29 Dec 2025 07:00:53 +0000</pubDate>
      <link>https://dev.to/sayrolivares/computer-science-como-disciplina-la-vision-de-peter-j-denning-34ap</link>
      <guid>https://dev.to/sayrolivares/computer-science-como-disciplina-la-vision-de-peter-j-denning-34ap</guid>
      <description>&lt;p&gt;Peter J. Denning sostiene que las ciencias informáticas no son simplemente una habilidad técnica, ni un subconjunto de las matemáticas, ni una forma limitada de ingeniería. Es, ante todo, una &lt;strong&gt;disciplina&lt;/strong&gt;. Con esto, Denning no se refiere a un conjunto de herramientas, como generalmente se puede pensar a casi cualquier otra cosa, sino a un &lt;strong&gt;cuerpo coherente de conocimiento, prácticas y valores&lt;/strong&gt; que una comunidad profesional utiliza para hacerse cargo de problemas reales relacionados con el procesamiento de información.&lt;/p&gt;

&lt;p&gt;La computación, según Denning, existe porque las sociedades modernas necesitan &lt;strong&gt;coordinar acciones, procesar información y comunicarse de manera confiable&lt;/strong&gt; a gran escala. La ciencia computacional es el núcleo intelectual que permite que esa infraestructura exista. Es de comprender, diseñar y gobernar los procesos que hacen posible esa automatización.&lt;/p&gt;

&lt;p&gt;Históricamente, la ciencia informática no nació del software ni de la programación como actividad práctica. Surgió de la convergencia entre la &lt;strong&gt;teoría de algoritmos&lt;/strong&gt;, la &lt;strong&gt;lógica matemática&lt;/strong&gt; y la &lt;strong&gt;invención de la computadora de programa almacenado&lt;/strong&gt;. Antes de que existieran lenguajes modernos o productos comerciales, ya existía una pregunta fundamental: &lt;em&gt;¿qué procesos pueden ser ejecutados mecánicamente a partir de reglas bien definidas?&lt;/em&gt; Esa pregunta precede a la industria y define la disciplina.&lt;/p&gt;

&lt;p&gt;Denning reconoce que la ciencia informática (Computer Science, o CS) suele definirse como &lt;em&gt;“el estudio de los procesos algorítmicos que describen y transforman información”&lt;/em&gt;. Sin embargo, insiste en que esta definición es &lt;strong&gt;demasiado austera&lt;/strong&gt;. Aunque es correcta en un sentido técnico, oculta dimensiones esenciales del campo. Reduce CS a una caricatura formal y borra su conexión con las preocupaciones humanas que motivan su existencia.&lt;/p&gt;

&lt;p&gt;Por eso, Denning amplía explícitamente la definición: Computer Science no solo estudia algoritmos, sino también &lt;strong&gt;la confiabilidad, la seguridad, la robustez, la integridad, la "mantenibilidad" y la evolución de los sistemas&lt;/strong&gt;. Es decir, estudia cómo los procesos computacionales se comportan cuando entran en contacto con el mundo real, con usuarios reales, bajo restricciones económicas, temporales y sociales reales. Ignorar esto la hace incompleta.&lt;/p&gt;

&lt;p&gt;En el centro de toda la disciplina, Denning identifica una pregunta unificadora:  &lt;strong&gt;¿Qué puede ser automatizado, y bajo qué condiciones puede hacerse de manera eficiente y confiable?&lt;/strong&gt; Esta pregunta no es trivial ni meramente técnica. Para responderla, es necesario entender el problema, formalizarlo, modelarlo, evaluar sus límites y diseñar un sistema que funcione en la práctica. Esto ya es, en esencia, pensamiento de ingeniería, pero en un nivel de abstracción más profundo que el de una ingeniería tradicional.&lt;/p&gt;

&lt;p&gt;Denning afirma que todo profesional serio de Computer Science debe dominar &lt;strong&gt;cuatro competencias fundamentales&lt;/strong&gt;. La primera es el &lt;strong&gt;pensamiento algorítmico&lt;/strong&gt;, que consiste en interpretar el mundo en términos de procedimientos precisos y reproducibles. La segunda es la &lt;strong&gt;representación&lt;/strong&gt;, es decir, decidir cómo codificar fenómenos del mundo para que puedan ser procesados eficientemente. La tercera es la &lt;strong&gt;programación&lt;/strong&gt;, que permite materializar algoritmos y representaciones en sistemas ejecutables. La cuarta, y decisiva, es el &lt;strong&gt;diseño&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;El diseño es el punto donde Computer Science se conecta explícitamente con los problemas humanos. Diseñar significa tomar decisiones bajo restricciones: costos, tiempos, riesgos, seguridad, escalabilidad, evolución futura y consecuencias de fallo. Denning deja claro que Computer Science &lt;strong&gt;no puede separarse del diseño sin perder su razón de ser&lt;/strong&gt;, pero también que el diseño sin las otras tres competencias es vacía y superficial.&lt;/p&gt;

&lt;p&gt;Un punto crucial de Denning es que Computer Science no pertenece exclusivamente a una sola tradición académica: Tiene raíces profundas en la matemática, una relación estructural con la ingeniería y una interacción creciente con las ciencias naturales y sociales. Por eso existen disputas sobre si CS es una ciencia, una ingeniería o una disciplina matemática aplicada. En realidad, &lt;strong&gt;todas esas visiones capturan partes reales del campo&lt;/strong&gt;. Es decir, todas son correctas, pero incompletas por su lado, así que tiene que existir como un sistema.&lt;/p&gt;

&lt;p&gt;En la práctica, Computer Science opera a través de &lt;strong&gt;tres paradigmas complementarios&lt;/strong&gt;. El primero es la &lt;strong&gt;teoría&lt;/strong&gt;, que construye marcos conceptuales, define límites y establece principios formales. El segundo es la &lt;strong&gt;experimentación&lt;/strong&gt;, que utiliza modelos, simulaciones y mediciones para explorar comportamientos complejos. El tercero es el &lt;strong&gt;diseño&lt;/strong&gt;, que construye sistemas reales que funcionan en contextos organizacionales y sociales concretos. La vitalidad del campo proviene de la interacción constante entre estos paradigmas.&lt;/p&gt;

&lt;p&gt;Denning advierte que muchos conflictos dentro de Computer Science surgen cuando alguien formado en un paradigma critica a otro sin entenderlo. Por ejemplo, cuando alguien orientado al diseño desprecia la teoría, o cuando alguien teórico subestima los problemas prácticos de los sistemas reales. Estas tensiones no indican debilidad disciplinar, sino inmadurez en la comprensión del campo.&lt;/p&gt;

&lt;p&gt;Finalmente, Denning es explícito y honesto sobre los fracasos históricos del software a gran escala. Reconoce que muchos sistemas han sido caros, frágiles, difíciles de modificar y poco confiables. En lugar de negar estos problemas, propone que Computer Science &lt;strong&gt;aprenda de disciplinas que estudian la acción humana&lt;/strong&gt;, como la antropología organizacional o la etnografía, para diseñar sistemas que realmente funcionen en la práctica. Esto no la hace débil ni "marihuana": la vuelve más rigurosa y responsable.&lt;/p&gt;

&lt;p&gt;En síntesis, para Peter Denning, &lt;strong&gt;Computer Science es la disciplina que estudia qué procesos pueden ser automatizados, cómo representarlos y ejecutarlos, y cómo diseñar sistemas computacionales que funcionen de manera confiable dentro de las complejidades del mundo humano&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Referencias&lt;br&gt;
Denning, P. J. (1999). Computer science: The discipline (Original work published 1997). Retrieved from &lt;a href="https://www.readkong.com/page/computer-science-the-discipline-peter-j-denning-9209580" rel="noopener noreferrer"&gt;https://www.readkong.com/page/computer-science-the-discipline-peter-j-denning-9209580&lt;/a&gt;&lt;/p&gt;

</description>
      <category>computerscience</category>
      <category>literature</category>
      <category>academy</category>
    </item>
    <item>
      <title>6 habits every computer science student must have</title>
      <dc:creator>Sayr Olivares</dc:creator>
      <pubDate>Wed, 05 Nov 2025 01:00:50 +0000</pubDate>
      <link>https://dev.to/sayrolivares/6-habits-every-computer-science-student-must-have-2gmh</link>
      <guid>https://dev.to/sayrolivares/6-habits-every-computer-science-student-must-have-2gmh</guid>
      <description>&lt;p&gt;If you are a computer science student or plan to start studying something related to this field, consider the following habits&lt;/p&gt;

&lt;h1&gt;
  
  
  1) Program everyday
&lt;/h1&gt;

&lt;p&gt;As a student (especially a freshman) you’ll need to use Python, Java, C++, and even Assembly (yes, that). You might think, “I’ll never use this later” ha! But you will.&lt;/p&gt;

&lt;p&gt;Programming daily, even for just 30 minutes, builds the logical and abstract thinking muscles you’ll need for every other topic in CS: algorithms, data structures, operating systems, AI, all of it.&lt;/p&gt;

&lt;p&gt;Do it consistently, and you’ll find yourself coding 3 to 5 hours a day without noticing, as if you were already working in tech.&lt;/p&gt;

&lt;h1&gt;
  
  
  2) Read code
&lt;/h1&gt;

&lt;p&gt;Reading code is how you develop taste. It’s how you recognize elegant logic, proper naming, and good software architecture.&lt;/p&gt;

&lt;p&gt;Read other people’s GitHub repositories. Look at open-source projects. See how others structure files, name variables, and comment (or fail to comment). You’ll learn what to emulate and what to avoid.&lt;/p&gt;

&lt;p&gt;Code reading trains your intuition for when something feels off, a sense that every good developer eventually develops.&lt;/p&gt;

&lt;p&gt;They won't teach you this at your university courses, unfortunately, so make sure you do this on your own or using your instructor's help and guidance.&lt;/p&gt;

&lt;h1&gt;
  
  
  3) Solve your math problems everyday
&lt;/h1&gt;

&lt;p&gt;Computer science &lt;em&gt;is&lt;/em&gt; applied mathematics. It’s algorithms, logic, proofs, statistics, boolean and linear algebra disguised behind pretty syntax.&lt;/p&gt;

&lt;p&gt;So, don’t run from math. Do a few exercises every day, even if they’re simple. It keeps your brain sharp and your logic grounded. When you later face algorithm analysis, probability in AI, or cryptography, you’ll thank your past self.&lt;/p&gt;

&lt;p&gt;If your future career involves machine learning, data science, or computer graphics, math will be your most profitable friend.&lt;/p&gt;

&lt;h1&gt;
  
  
  4) Socialize
&lt;/h1&gt;

&lt;p&gt;Yes, really. Talk to people. The stereotype of the lonely programmer in a dark room is outdated and unhealthy.&lt;/p&gt;

&lt;p&gt;CS is a collaborative field. You’ll work in teams, build projects, and have to explain your code to people who might not even code. Communication is a superpower.&lt;/p&gt;

&lt;p&gt;Also, networking is how opportunities find you. Many internships, jobs, and research projects happen because of one good conversation.&lt;/p&gt;

&lt;p&gt;And make sure you get laid from time to time, for god's sake.&lt;/p&gt;

&lt;h1&gt;
  
  
  5) Hit the gym
&lt;/h1&gt;

&lt;p&gt;Programming trains your brain, but sitting for hours kills your body. Go lift, run, or &lt;em&gt;at least&lt;/em&gt; stretch. Own your routine.&lt;/p&gt;

&lt;p&gt;Exercise helps your concentration, mood, and sleep: all critical for debugging at 2 a.m.&lt;/p&gt;

&lt;p&gt;A healthy body sustains a creative mind. You’ll also find that lifting weights does wonders for your stress tolerance, and CS can be stressful.&lt;/p&gt;

&lt;h1&gt;
  
  
  6) Document your code
&lt;/h1&gt;

&lt;p&gt;You might think you’ll remember what your code does next week, but You won’t. Been there, done that.&lt;/p&gt;

&lt;p&gt;Documentation is how you make your code readable, maintainable, and respectful to your future self (and your teammates).&lt;/p&gt;

&lt;p&gt;Use meaningful comments, README files, and docstrings. Good documentation is what separates professionals from hobbyists. It’s also the first thing interviewers notice when you show them your projects. Believe me, you will document &lt;strong&gt;ALL THE TIME&lt;/strong&gt;, especially when you lead teams: you want to know what Mark did and how he did it, your boss will ask you that.&lt;/p&gt;

&lt;h1&gt;
  
  
  Bonus habit: infrastructure
&lt;/h1&gt;

&lt;p&gt;A computer scientist asks many questions “Does it work?", “Will it still work with 10,000 users?” and “What happens when it breaks?”&lt;/p&gt;

&lt;p&gt;Start thinking about infrastructure early, even as a student. Learn how software scales, how data flows, and how services talk to each other. Read about cloud architecture, APIs, databases, and CI/CD pipelines. Understand why companies use AWS, Docker, Kubernetes, or Terraform, not just how.&lt;/p&gt;

&lt;p&gt;Before writing code, sketch the architecture. Know the trade-offs between monoliths and microservices, between SQL and NoSQL, between speed and maintainability.&lt;/p&gt;

&lt;p&gt;Good planning saves months of technical debt later, and if you ever lead a team, you’ll realize that the most valuable skill is how to design systems that survive.&lt;/p&gt;

&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;p&gt;The habits above will turn you from a student who studies code into someone who thinks like a computer scientist. So do your homework, hit the gym, socialize and get laid.&lt;/p&gt;

&lt;p&gt;Have some fun!&lt;/p&gt;

</description>
      <category>computerscience</category>
      <category>programming</category>
      <category>productivity</category>
      <category>learning</category>
    </item>
    <item>
      <title>Why you should keep a notebook while learning programming (yes, a real one)</title>
      <dc:creator>Sayr Olivares</dc:creator>
      <pubDate>Mon, 13 Oct 2025 06:54:42 +0000</pubDate>
      <link>https://dev.to/sayrolivares/why-you-should-keep-a-notebook-while-learning-programming-yes-a-real-one-40nc</link>
      <guid>https://dev.to/sayrolivares/why-you-should-keep-a-notebook-while-learning-programming-yes-a-real-one-40nc</guid>
      <description>&lt;p&gt;When I first started studying computer science, I underestimated how much writing things down could help me learn to code. I thought: “Why bother with a notebook when everything’s online and can just make notes in Notion anyway?” But then I realized... computers remember syntax, &lt;em&gt;I&lt;/em&gt; have to remember logic.&lt;/p&gt;

&lt;p&gt;I like the idea that keeping a notebook while learning programming is old-fashioned, but... it’s also a tool for developing what computers don’t have: &lt;em&gt;understanding&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;I liked those black and white marble composition notebooks my father had when I was little, it looked so college-level, so interesting... &lt;a href="https://www.amazon.com/Emraw-Black-Marble-Composition-Sheets/dp/B0731NLT2S/?_encoding=UTF8&amp;amp;pd_rd_w=tRg4X&amp;amp;content-id=amzn1.sym.c1db5470-7e06-4451-8f99-4241d2e59954%3Aamzn1.symc.5a16118f-86f0-44cd-8e3e-6c5f82df43d0&amp;amp;pf_rd_p=c1db5470-7e06-4451-8f99-4241d2e59954&amp;amp;pf_rd_r=XDGZNXNBTAA1ZN71GM5E&amp;amp;pd_rd_wg=otTlH&amp;amp;pd_rd_r=b064457c-1c5d-4e91-b74a-619db2546da0&amp;amp;ref_=pd_hp_d_atf_ci_mcx_mr_ca_hp_atf_d&amp;amp;th=1" rel="noopener noreferrer"&gt;Here's where you can find it though&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;This is &lt;strong&gt;not&lt;/strong&gt; advertisement, by the way.&lt;/p&gt;

&lt;p&gt;Let’s go!&lt;/p&gt;

&lt;h2&gt;
  
  
  Writing forces you to think in algorithms, not just code
&lt;/h2&gt;

&lt;p&gt;When you’re taking notes by hand (or even digitally, but intentionally) you’re translating information.&lt;/p&gt;

&lt;p&gt;If you write:&lt;/p&gt;

&lt;p&gt;for i in range(n):&lt;br&gt;
    sum += arr[i]&lt;/p&gt;

&lt;p&gt;you might also note:&lt;/p&gt;

&lt;p&gt;“This iterates n times -&amp;gt; linear time O(n). Used for aggregations like sum or count.”&lt;/p&gt;

&lt;p&gt;That small &lt;em&gt;reflection&lt;/em&gt; helps your brain move from syntax to semantics, from “how to write” to “why it works.” You start thinking like a compiler and a mathematician: step-by-step, deterministic and analytical, which is the core skill of a computer scientist.&lt;/p&gt;

&lt;h2&gt;
  
  
  A notebook builds a second brain for debugging
&lt;/h2&gt;

&lt;p&gt;When debugging, patterns emerge. Maybe you forgot to close parentheses in Python. Maybe your Java variable went out of scope again. You can note it like this:&lt;/p&gt;

&lt;p&gt;“Common bug: off-by-one error when iterating to len(arr) instead of len(arr)-1.”&lt;/p&gt;

&lt;p&gt;After a few weeks, your notebook becomes a personal bug database tailored to your weaknesses and growth areas; and when something breaks, you consult your own mind with your own notes! This is where you learn AGAIN! How cool is that?&lt;/p&gt;

&lt;p&gt;That’s what separates a student from a developer: debugging from memory.&lt;/p&gt;

&lt;h2&gt;
  
  
  It trains long-term retention (apart from short-term recognition)
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Reading&lt;/strong&gt; code online gives you recognition memory: “I’ve seen that before.”&lt;br&gt;
&lt;strong&gt;Writing&lt;/strong&gt; gives you recall memory: “I can explain that from scratch.”&lt;/p&gt;

&lt;p&gt;This matters because programming is cumulative. If you forget recursion when you hit data structures, or pointer arithmetic before operating systems, you’ll constantly rebuild foundations instead of expanding them.&lt;/p&gt;

&lt;p&gt;A notebook acts like spaced repetition in disguise, each review session strengthens your mental model.&lt;/p&gt;

&lt;h2&gt;
  
  
  You start building mental models
&lt;/h2&gt;

&lt;p&gt;Mathematics is about structure. Programming is obviously related too (don't forget to study mathematical thinking when studying programming though).&lt;/p&gt;

&lt;p&gt;When you write notes, you can visualize relationships between ideas:&lt;/p&gt;

&lt;p&gt;Stack &amp;lt;-&amp;gt; Function calls&lt;/p&gt;

&lt;p&gt;Heap &amp;lt;-&amp;gt; Dynamic memory allocation&lt;/p&gt;

&lt;p&gt;API &amp;lt;-&amp;gt; Interface between abstraction layers&lt;/p&gt;

&lt;p&gt;Drawing diagrams, mapping flowcharts, or writing your own version of a concept like “how the OS handles threads” creates internal architecture. And plus, it kinda makes you look cool. Sometimes. As long as nobody understands your hand-writing.&lt;/p&gt;

&lt;p&gt;You stop thinking in terms of “what’s the correct command?” and start thinking, “what’s the mechanism?”&lt;/p&gt;

&lt;p&gt;That’s computer science.&lt;/p&gt;

&lt;h2&gt;
  
  
  You can version-control your knowledge
&lt;/h2&gt;

&lt;p&gt;Here’s the fun part: treat your notebook like a &lt;em&gt;repository&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Each date or concept = a commit&lt;br&gt;
Each correction = a refactor&lt;br&gt;
Each realization = a pull request from your future self&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fohsyy0p547qlw7stc9vp.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fohsyy0p547qlw7stc9vp.jpg" alt="My Java notebook" width="800" height="1420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Some people even use markdown + GitHub to version-control their notes (I do too). Others go analog with pen and paper, which, by the way, reduces distractions and helps focus deeply. Either way, the principle stands: your knowledge deserves versioning and insights.&lt;/p&gt;

&lt;p&gt;Don't forget to also specify the date you're writing, though.&lt;/p&gt;

&lt;h2&gt;
  
  
  You’ll write better code because you’ll explain better
&lt;/h2&gt;

&lt;p&gt;Explaining code on paper (even just to yourself) trains your internal “compiler.”&lt;br&gt;
Every time you write something like:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“&lt;em&gt;Recursion is just a function calling itself with smaller subproblems until it hits a base case.&lt;/em&gt;”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;You’re not taking notes. You’re rehearsing how to explain the concept — which means you’re internalizing it.&lt;/p&gt;

&lt;p&gt;The best programmers I’ve met aren’t those who type fast. They’re the ones who can explain why their code works with the calm precision of a philosopher.&lt;/p&gt;




&lt;h2&gt;
  
  
  In practice: What to put in your programming notebook
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Definitions&lt;/strong&gt;: Clear, mathematical explanations (“&lt;em&gt;Polymorphism: the ability of different data types to be accessed through the same interface.&lt;/em&gt;”)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Code patterns&lt;/strong&gt;: Reusable snippets with notes on when/why to use them&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Debugging logs&lt;/strong&gt;: Notes on mistakes and how you fixed them&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Diagrams&lt;/strong&gt;: Memory models, flowcharts, data structure visualizations&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reflections&lt;/strong&gt;: What you learned, what confused you, and how you solved it&lt;/p&gt;

&lt;p&gt;Keep it structured but human — your notebook is not a documentation file; it’s a dialogue with your &lt;em&gt;future self&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;I have kept a personal journal since 2020 only to write down my personal thoughts, and it is always fun to run to it just to save a memory, an idea, a feeling or something that reminded me of that present moment for my future self: I do the same when it comes to programming. It's weird, probably dumb, but I like it. I'm a geek after all. We are all, indeed.&lt;/p&gt;




&lt;h1&gt;
  
  
  Final Thought
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;A programmer’s notebook&lt;/strong&gt; is a mirror of your thinking process. Over time, you’ll see how your logic evolves, how your clarity sharpens, and how you move from “writing code” to understanding computation.&lt;/p&gt;

&lt;p&gt;Remember computers store &lt;em&gt;data&lt;/em&gt;.&lt;br&gt;
&lt;strong&gt;Programmers&lt;/strong&gt; store &lt;em&gt;understanding&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;So keep writing your understanding line by line!&lt;/p&gt;

</description>
      <category>programming</category>
      <category>notebook</category>
      <category>java</category>
      <category>beginners</category>
    </item>
    <item>
      <title>How to get a stripe MCC (Merchant code) with Python</title>
      <dc:creator>Sayr Olivares</dc:creator>
      <pubDate>Tue, 02 Sep 2025 02:13:19 +0000</pubDate>
      <link>https://dev.to/sayrolivares/how-to-get-a-stripe-mcc-merchant-code-with-python-4m70</link>
      <guid>https://dev.to/sayrolivares/how-to-get-a-stripe-mcc-merchant-code-with-python-4m70</guid>
      <description>&lt;p&gt;There are several reasons why you’d like to get your Merchant Code in Stripe, one of them being able to be eligible for HSA/FSA payments in the future if the MCC is 8099, which is a task your boss most probably assigned to you (as mine did). I’ll provide a step by step guide on how you can do this for your business (easy to follow and you’re no developer) or someone else’s (if you’re the dev).&lt;/p&gt;

&lt;p&gt;If you want to know more about MCC, go &lt;a href="https://directpaynet.com/merchant-category-codes-why-they-matter-and-how-to-choose-the-best-one-for-your-business/" rel="noopener noreferrer"&gt;here&lt;/a&gt;. It gets you relevant information on the MCC, although it is more helpful for your bosses or the business owner than to yourself.&lt;/p&gt;

&lt;p&gt;You can find Stripe docs &lt;a href="https://docs.stripe.com/connect/setting-mcc?connect-account-creation-pattern=typed" rel="noopener noreferrer"&gt;here&lt;/a&gt; and &lt;a href="https://docs.stripe.com/api/accounts/retrieve?lang=python" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  First, get your Stripe Secret Key
&lt;/h2&gt;

&lt;p&gt;Go to your API dashboard &lt;a href="https://dashboard.stripe.com/apikeys" rel="noopener noreferrer"&gt;here&lt;/a&gt;. You should see something like this:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fysl0enyitgfm4zbxe61b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fysl0enyitgfm4zbxe61b.png" alt="Screenshot" width="800" height="458"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;To be able to pull up the secret key, you will need to get the MFA code and validate your account through email as well, so make sure you can access those with your system administrator before you do this.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Then, save the key somewhere secure.&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 2: Install the necessary packages
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Packages
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Stripe&lt;/li&gt;
&lt;li&gt;dotenv&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;em&gt;You can avoid the terminal installation below if you’re using an IDE like PyCharm that already handles the packages, just go to Settings → Project → Python interpreter and add these above. That’s it. Or just write the code and wait for the IDE to prompt the installation (the laziest way).&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fquw8dqr2c1lva2tt1vpo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fquw8dqr2c1lva2tt1vpo.png" alt="Screenshot" width="800" height="588"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Installing Stripe
&lt;/h3&gt;

&lt;p&gt;On the terminal, use these:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;MacOS:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Brew install stripe&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;If you don’t have brew, install it &lt;a href="https://docs.brew.sh/Installation" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Windows:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;pip install stripe&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Linux:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;pip3 install stripe&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Or whatever package in Linux you use to install package.&lt;/p&gt;

&lt;h3&gt;
  
  
  Installing dotenv
&lt;/h3&gt;

&lt;p&gt;This is an easy one, just do:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;pip3 install python-dotenv&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Or just install the package within PyCharm or any IDE you use like shown in the picture above.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3: Access your MCC
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;If you’re the owner of the business and you want simplicity, follow the following: in order to see your MCC you just need to call your Secret API Key directly.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Be cautious that this is bad practice in a real dev environment and they won't encourage you to do that.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Use this code to access it:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;import stripe&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;stripe.api_key = "sk_live_your_secret_key_here"&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;account = stripe.Account.retrieve()&lt;/code&gt;&lt;br&gt;
&lt;code&gt;print("Your MCC is:", account.business_profile["mcc"])&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;You will get the following output:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foa17xl2jbuexm6lv6yy6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foa17xl2jbuexm6lv6yy6.png" alt="Screenshot. My middle name is Enrique." width="716" height="526"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Best practice
&lt;/h2&gt;

&lt;p&gt;In a real world scenario, you must store the secret key in an .env file or within AWS Secrets Manager (and retrieve it however you need, probably Lambda). I’ll show you how to do this using the .env file&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Create the .env file and that’s gonna be it, no other name after or before it, just .env&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Use it like this, with no spaces in between: &lt;code&gt;STRIPE_SECRET_KEY=sk_live_secret_key&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Save it in the same folder your .py file is&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe40nbe2hg2ku93coqu0g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe40nbe2hg2ku93coqu0g.png" alt="Screenshot" width="460" height="210"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then run this code in your IDE:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;import os&lt;/code&gt;&lt;br&gt;
&lt;code&gt;from dotenv import load_dotenv&lt;/code&gt;&lt;br&gt;
&lt;code&gt;import stripe&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;#load environment variables from the .env file&lt;/code&gt;&lt;br&gt;
&lt;code&gt;load_dotenv()&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;#this retrieves the API key from the environment&lt;/code&gt;&lt;br&gt;
&lt;code&gt;stripe.api_key = os.getenv("STRIPE_SECRET_KEY") #don't change this for god's sake&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;#get your MCC right away&lt;/code&gt;&lt;br&gt;
&lt;code&gt;account = stripe.Account.retrieve()&lt;/code&gt;&lt;br&gt;
&lt;code&gt;print("Your MCC is:", account.business_profile["mcc"])&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;And there it it folks, your MCC will be shown just like the previous output screenshot.&lt;/p&gt;

&lt;p&gt;Now, this is just basic level programming, your tech environment may treat it differently, but this code is the foundation of it. :)&lt;/p&gt;

</description>
      <category>python</category>
      <category>beginners</category>
      <category>startup</category>
      <category>stripe</category>
    </item>
  </channel>
</rss>
